Extraction de certaines lignes d'un data frame
Bonjour,
je suis tombé sur un petit piège que je ne sais pas éviter: je voudrais extraire des lignes d'un data frame selon un critère donné (texte, en utilisant subset, which ou grep), le piège étant que le critère donné peut contenir des parenthèses...
Code:
1 2
|
df <- data.frame(nom = c("a","b","c","d","e","f"), categorie = c("cat1", "cat1", "cat2 (expression)", "cat2 (expression)", "cat3", "cat3")) |
du coup si je veux extraire les lignes dont la catégorie vaut "cat1" OU "cat2 (expression)" je n'y arrive pas. Avec "cat1" OU "cat3" pas de problème:
Code:
1 2
|
df2 <- df [grep(paste(c("cat1", "cat3"), collapse = "|"), df$categorie, fixed = FALSE),] |
fonctionne grâce à l'argument fixed = FALSE. par contre si le pattern a chercher contient une parenthèse cet argument me fout la zone...
Code:
1 2
|
df2 <- df [grep(paste(c("cat1", "cat2 (expression)", collapse = "|"), df$categorie, fixed = FALSE),] |
ne fonctionne pas...
Auriez vous une idée pour contourner ce piège?
merci beaucoup!