Eu tenho um dataframe com uma coluna mostrando categorias e outras 3 colunas (col1, col2 e col3).
Preciso descobrir quais categorias só têm NA para col1, col2 ou col3 (que é cat1 por causa dos NA em col3 e cat3 por causa dos NA em col1. cat2 incluiu não ou sim em cada um de col1, col2 e col3 e, portanto, não estão incluídos).
col1 <- c("yes","no","yes","no",NA,NA,NA)
col2 <- c(NA,NA,"yes","no","yes","no",NA)
col3 <- c(NA,"yes",NA,"no","yes","no","yes")
cat <- c("cat1","cat2","cat1","cat2","cat3","cat3","cat3")
df <- data.frame(cat,col1,col2,col3)
end_result <-c("cat1","cat3")
Quero que o resultado seja exibido como um vetor conforme mostrado acima.
Uma abordagem usando
across
agrupamento por cat e verificando se alguma coluna possui todasNA
as entradas. Finalmente retirando-os com filtro.Uma abordagem base R na mesma linha
dplyr
1.0.4 adicionou if_any/if_all para este tipo de cenário: