J'ai une chaîne comme ça :
years<-c("20 years old", "1 years old")
Je voudrais grep seulement le nombre numérique de ce vecteur. La sortie attendue est un vecteur :
c(20, 1)
Comment dois-je m'y prendre ?
J'ai une chaîne comme ça :
years<-c("20 years old", "1 years old")
Je voudrais grep seulement le nombre numérique de ce vecteur. La sortie attendue est un vecteur :
c(20, 1)
Comment dois-je m'y prendre ?
Extrait les nombres de n'importe quelle chaîne de caractères à la position de départ.
x <- gregexpr("^[0-9]+", years) # Numbers with any number of digits
x2 <- as.numeric(unlist(regmatches(years, x)))
Extraire des chiffres de n'importe quelle chaîne de caractères INDÉPENDANTE de la position.
x <- gregexpr("[0-9]+", years) # Numbers with any number of digits
x2 <- as.numeric(unlist(regmatches(years, x)))
Utilisation du paquet décoller nous pouvons faire :
# install.packages("unglue")
library(unglue)
years<-c("20 years old", "1 years old")
unglue_vec(years, "{x} years old", convert = TRUE)
#> [1] 20 1
Créé le 2019-11-06 par le paquet reprex (v0.3.0)
Plus d'informations : https://github.com/moodymudskipper/unglue/blob/master/README.md
Après le post de Gabor Grothendieck post à la liste de diffusion r-help
years<-c("20 years old", "1 years old")
library(gsubfn)
pat <- "[-+.e0-9]*\\d"
sapply(years, function(x) strapply(x, pat, as.numeric)[[1]])
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.