我有一个可以有任何可能长度的列表(每个元素的内容并不重要):
list<- as.list(rep(NA,sample(1:10,1)))
我想在R中创建一个文本行,如下所示:
list[[1]],list[[2]],......,list[[n]]
生活&#34; n&#34;列表中元素的数量。
所以,如果它有4个我希望看到的元素出现在控制台中,就像这样:
list[[1]],list[[2]],list[[3]],list[[4]]
所以,如果它有2个元素我想要这样的东西:
list[[1]],list[[2]]
任何想法?
非常感谢你。
蒂娜
答案 0 :(得分:2)
这将提供所需的字符串,并且可以很容易地变成一个函数:
> paste( sprintf("list[[%i]]", 1:4) , collapse=",")
[1] "list[[1]],list[[2]],list[[3]],list[[4]]"
> lisfun <- function (lst) paste( sprintf("list[[%i]]", 1:length(lst)) , collapse=",")
>
> list1<- as.list(rep(NA,sample(1:10,1)))
> lisfun(list1)
[1] "list[[1]],list[[2]],list[[3]],list[[4]],list[[5]],list[[6]],list[[7]]"
答案 1 :(得分:0)
你可以尝试
paste0("c(", paste("list[[",seq_along(list),"]]",
sep='', collapse=", "), ")")