J'ai des données similaires à celles-ci :
dt <- structure(list(fct = structure(c(1L, 2L, 3L, 4L, 3L, 4L, 1L, 2L, 3L, 1L, 2L, 3L, 2L, 3L, 4L), .Label = c("a", "b", "c", "d"), class = "factor"), X = c(2L, 4L, 3L, 2L, 5L, 4L, 7L, 2L, 9L, 1L, 4L, 2L, 5L, 4L, 2L)), .Names = c("fct", "X"), class = "data.frame", row.names = c(NA, -15L))
Je veux sélectionner des lignes de ce cadre de données en fonction des valeurs de l'élément fct
variable. Par exemple, si je souhaite sélectionner les lignes contenant soit "a" soit "c", je peux procéder comme suit :
dt[dt$fct == 'a' | dt$fct == 'c', ]
ce qui donne
1 a 2
3 c 3
5 c 5
7 a 7
9 c 9
10 a 1
12 c 2
14 c 4
comme prévu. Mais mes données réelles sont plus complexes et je veux en fait sélectionner des lignes sur la base des valeurs d'un vecteur tel que
vc <- c('a', 'c')
Alors j'ai essayé
dt[dt$fct == vc, ]
mais bien sûr, ça ne marche pas. Je sais que je pourrais coder quelque chose pour boucler le vecteur, en extraire les lignes nécessaires et les ajouter à un nouveau cadre de données, mais j'espérais qu'il existait une méthode plus élégante.
Alors, comment puis-je filtrer/sous-former mes données en fonction du contenu du vecteur ? vc
?