web-dev-qa-db-fra.com

Comment coller une chaîne sur chaque élément d'un vecteur de chaînes en utilisant apply dans R?

J'ai un vecteur de chaînes.

d <- c("Mon","Tues","Wednes","Thurs","Fri","Satur","Sun")

pour lequel je veux coller la chaîne "jour" sur chaque élément du vecteur d'une manière similaire à celle-ci.

week <- apply(d, "day", paste, sep='')
50
pedrosaurio

Pas besoin de apply(), utilisez simplement paste():

R> d <- c("Mon","Tues","Wednes","Thurs","Fri","Satur","Sun")
R> week <- paste(d, "day", sep="")
R> week
[1] "Monday"    "Tuesday"   "Wednesday" "Thursday"  
[4] "Friday"    "Saturday"  "Sunday"   
R> 
83
Dirk Eddelbuettel

D'autres ont déjà indiqué que puisque paste est vectorisé, il n'est pas nécessaire d'utiliser apply dans ce cas.

Cependant, pour répondre à votre question: apply est utilisé pour un tableau ou data.frame. Lorsque vous souhaitez appliquer une fonction sur une liste (ou un vecteur), utilisez lapply ou sapply (une variante de lapply qui simplifie le résultats):

sapply(d, paste, "day", sep="")
        Mon        Tues      Wednes       Thurs         Fri       Satur 
   "Monday"   "Tuesday" "Wednesday"  "Thursday"    "Friday"  "Saturday" 
        Sun 
   "Sunday" 
11
Andrie