Ho questo dataframe:Come selezionare colonne specifiche contenenti determinate stringhe/caratteri?
df1 <- data.frame(a = c("correct", "wrong", "wrong", "correct"),
b = c(1, 2, 3, 4),
c = c("wrong", "wrong", "wrong", "wrong"),
d = c(2, 2, 3, 4))
a b c d
correct 1 wrong 2
wrong 2 wrong 2
wrong 3 wrong 3
correct 4 wrong 4
e vorrei selezionare solo le colonne sia con le stringhe 'corretto' o 'sbagliato' (vale a dire, b colonne e d in df1), in modo tale che ottengo questo dataframe :
df2 <- data.frame(a = c("correct", "wrong", "wrong", "correct"),
c = c("wrong", "wrong", "wrong", "wrong"))
a c
1 correct wrong
2 wrong wrong
3 wrong wrong
4 correct wrong
Posso usare dplyr per fare questo? In caso contrario, quale funzione (s) posso usare per fare questo? L'esempio che ho dato è semplice, nel senso che io posso solo fare questo (dplyr):
select(df1, a, c)
Tuttavia, a mio dataframe attuale, ho circa 700 variabili/colonne e qualche centinaio di colonne che contengono le stringhe 'corretto' o 'sbagliato' e non conosco i nomi delle variabili/colonne.
Qualche suggerimento su come farlo rapidamente? Molte grazie!
Stavo per fare 'df1 [sapply (df1, function (x) any (x% in% c (" correct "," wrong ")))]' ma questo è più bello. – A5C1D2H2I1M1N2O1R2T1
Non sapevo che ci fosse il filtro nella base R! Molte grazie! – hsl