Eu tenho um quadro de dados chamado df:
warning = c("HAS","NO","HAS","HAS","HAS")
validation = c("OK","OK","WARNING","WARNING","WARNING")
a_b_c_messages1 = c(NA,NA,"good catch",NA,NA)
D_E_f_messages2 = c(NA,NA,NA,"NOT BAD",NA)
g_h_I_messages3 = c(NA,NA,NA,NA,"BETTER")
j_k_l_messages4 = c(NA,NA,NA,NA,NA)
df = tibble(warning,validation,a_b_c_messages1,
D_E_f_messages2,g_h_I_messages3,
j_k_l_messages4)
A tibble: 5 × 6
warning validation a_b_c_messages1 D_E_f_messages2 g_h_I_messages3 j_k_l_messages4
<chr> <chr> <chr> <chr> <chr> <lgl>
1 HAS OK NA NA NA NA
2 NO OK NA NA NA NA
3 HAS WARNING good catch NA NA NA
4 HAS WARNING NA NOT BAD NA NA
5 HAS WARNING NA NA BETTER NA
Quero filtrar esse df e manter as linhas em que o aviso da coluna contém a palavra "HAS" e se houver alguma coluna que contenha a string "Message" e não seja NA.
O ideal é que o df resultante seja assim:
warning validation a_b_c_messages1 D_E_f_messages2 g_h_I_messages3
<chr> <chr> <chr> <chr> <chr>
3 HAS WARNING good catch NA NA
4 HAS WARNING NA NOT BAD NA
5 HAS WARNING NA NA BETTER
Apenas uma opção na base
onde
X
está seu quadro de dados.Você pode usar
filter
withif_any
e então selecionar as colunas que não contêm todos os NA usingwhere
(o que você não especificou na sua pergunta, mas é evidente na saída desejada).Dá
Criado em 2024-11-08 com reprex v2.1.1