1
resposta

[Sugestão] Erro na proposta do conteúdo

library(dplyr)

df <- data.frame(a = 1:5, b = c(1, 1, 1, 2, 2), c = 11:15)
select(df, if_any(b == 1))
select(df, if_all(b == 1))

Error in `select()`:ℹ In argument: `if_any(b == 1)`.Caused by error in `across()`:! Must only be used inside data-masking verbs like `mutate()`, `filter()`, and  `group_by()`.Run `rlang::last_trace()` to see where the error occurred.

n entendi

O que esta escrito na atividade é " Seleção Condicional
10 - Seleção Condicional:

Usa if_any e if_all para selecionar colunas com base em condições aplicadas a todas ou quaisquer colunas.

df <- data.frame(a = 1:5, b = c(1, 1, 1, 2, 2), c = 11:15)
select(df, if_any(b == 1))
select(df, if_all(b == 1))

"

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi José, tudo bem?

O erro ocorre porque essas funções são projetadas para serem usadas dentro de verbos de manipulação de dados como mutate, filter e group_by, e não diretamente dentro de select. Para resolver isso, você pode usar essas funções em conjunto com filter para filtrar linhas com base em condições, como mostro neste tópico.

Ou ainda utilizar a função auxiliar where() para selecionar colunas cujo conteúdo ou tipo satisfaz uma condição. Por exemplo:

df %>%
  select(where(~ all(.x > 10)))

Fiz os ajustes na atividade, incluindo a sugestão do where.

Agradeço por sinalizar.

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!