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...
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 df <- data.frame(nom = c("a","b","c","d","e","f"), categorie = c("cat1", "cat1", "cat2 (expression)", "cat2 (expression)", "cat3", "cat3"))
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2df2 <- df [grep(paste(c("cat1", "cat3"), collapse = "|"), df$categorie, fixed = FALSE),]
ne fonctionne pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2df2 <- df [grep(paste(c("cat1", "cat2 (expression)", collapse = "|"), df$categorie, fixed = FALSE),]
Auriez vous une idée pour contourner ce piège?
merci beaucoup!
Partager