J'ai les noms de variables suivants:
clean_vars <- c("var1.caps","var2","var3.tree.","var4.caps")
Je dois nettoyer ces noms pour obtenir le résultat suivant:
vars <- c("var1.caps(12, For]","var2(5,For]","var3.tree.(15, For]","var4.caps")
Donc, en gros, j'aimerais supprimer (.. .
Y a-t-il un moyen automatisé de le faire dans R?
J'essayais de adapter str_replace (vars, pattern, "") , mais je ne sais pas comment rendre pattern flexible car il pourrait avoir des valeurs différentes entre ( et ] .
4 Réponses :
gsub("\\(.*\\]","",vars)
[1] "var1.caps" "var2" "var3.tree." "var4.caps"
Utilisation de stringr et purrr:
stringr::str_split(vars, "\\(") %>% purrr::map(., 1) %>% unlist()
[1] "var1.caps" "var2" "var3.tree." "var4.caps"
Une autre option d'utilisation de gsub
> gsub("(?<=)\\(.*\\]","\\1",vars,perl = T)
[1] "var1.caps" "var2" "var3.tree."
[4] "var4.caps
Éliminer
( (dans l'expression régulière \\ () dans la chaîne . + ). Remplacez-le par rien ( "" ).
sub("\\(.+", "", vars)
# [1] "var1.caps" "var2" "var3.tree." "var4.caps"