我是R的新手,需要帮助进行迭代。这是我的代码:
vec1 <- c("John", "Cat")
vec2 <- c("Matthew", "Dino", "Dog", "Bird")
vec3 <- c("James", "Snail", "Worm", "Frog", "Dragon")
list1<- list(vec1, vec2, vec3)
printer <- function(list1) {
for (item in list1) {
print(paste(paste(item[1], "'s pets are", sep = ''), paste(item[2:length(item)], sep = ' ')))
}
}
printer(list1)
结果
[1] "John's pets are Cat"
[1] "Matthew's pets are Dino" "Matthew's pets are Dog" "Matthew's pets are Bird"
[1] "James's pets are Snail" "James's pets are Worm" "James's pets are Frog" "James's pets are Dragon"
我试着让宠物名字都打印在同一行,但它们一直是分开打印的。
在第二个paste
中,它应该是collapse
而不是sep
for (item in list1) {
print(paste(paste(item[1], "'s pets are", sep = ''),
paste(item[2:length(item)], collapse = ' ')))
}
-输出
[1] "John's pets are Cat"
[1] "Matthew's pets are Dino Dog Bird"
[1] "James's pets are Snail Worm Frog Dragon"
或使用toString
(
for(item in list1) print(paste0(item[1], "'s pets are ", toString(item[-1])))