r-在相同的粘贴函数中,以不确定的长度在迭代中打印列表的其余部分



我是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])))

最新更新