2016-11-06 3 views
1

J'essaie d'utiliser la fonction stri_join, à partir de la bibliothèque stringi dans une boucle, mais j'ai des difficultés. Je voudrais obtenir "A_1.png", "A_2.png", "A_3.png", "A_4.png", "A_5.png", et ainsi de suite jusqu'à "A_200.png".comment utiliser coller dans pour les boucles

Voici ma tentative:

x <- c(1:200) 
x 
for (i in 1:length(x)){ 
    Names <-paste("A_", 1:length(i), ".png",sep = "") 
    print(Names) 
} 

j'obtiens "A_1.png" pour 200 fois. Si vous pouviez indiquer ce qui me manquait. Je vous remercie!

Répondre

1

Nous n'avons pas besoin d'une boucle pour cela car paste est vectorisée. Donc, soit utiliser sprintf

Names <- sprintf("A_%d.png", x) 

Ou paste

Names <- paste0("A_", x, ".png") 

Si cela est un exercice sur la boucle for, initialiser le vecteur « Noms » et attribuer à chaque élément des « noms » à la valeur correspondante à partir de paste

Names <- character(length(x)) 
for(i in seq_along(x)){ 
    Names[i] <- paste0("A_", i, ".png") 
} 
1

solution:

stri_paste("A_",1:200,".png") 

Coller 'A_' avec un vecteur de 1 à 200 et '.png'. La vectorisation vient en aide et nous obtenons le résultat souhaité.