2016-11-06 5 views
1

Я пытаюсь использовать функцию stri_join, из библиотеки stringi в петле, но у меня возникают трудности. Я хотел бы получить «A_1.png», «A_2.png», «A_3.png», «A_4.png», «A_5.png» и т. Д. До «A_200.png».Как использовать пасту для петель

Вот моя попытка:

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

я получаю "A_1.png" в 200 раз. Если бы вы могли указать, что мне не хватает. Спасибо!

ответ

1

Для этого не нужен цикл, так как paste векторизован. Так что либо использовать sprintf

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

Или paste

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

Если это упражнение на for цикла, инициализировать вектор «имен» и присвоить каждый элемент «имен» к соответствующему значению от paste

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

stringi решение:

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

Paste 'A_' с вектором от 1 до 200 и '.png'. Векторизация приходит на помощь, и мы получаем желаемый результат.

 Смежные вопросы

  • Нет связанных вопросов^_^