2015-01-15 57 views
0

我有一个可以具有任何可能的长度的列表(各元素的含量并不重要):如何用列表中的所有条目创建文本行?中的R

list<- as.list(rep(NA,sample(1:10,1))) 

我想创建中的R文本行,这样的:

list[[1]],list[[2]],......,list[[n]] 

是“n”列表的元素数量。

所以,如果它有4个元素我希望看到出现在控制台,像这样:

list[[1]],list[[2]],list[[3]],list[[4]] 

所以,如果它有2个元素,我想是这样的:

list[[1]],list[[2]] 

有什么想法?

非常感谢您提前。

蒂娜

+0

只是好奇,为什么你要的是输出? – 2015-01-15 17:54:26

+0

然后我有一个问题,因为我真的不知道如何解释它更好:(我需要这个将它传递到另一个函数,只接受这样的参数。 – user18441 2015-01-15 17:57:13

+0

你传递给你什么函数?如果它是自定义的,那么你可能想要重新思考*那个*函数 – 2015-01-15 17:57:54

回答

0

你可以尝试

paste0("c(", paste("list[[",seq_along(list),"]]", 
         sep='', collapse=", "), ")") 
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]]" 
+0

完美!谢谢! – user18441 2015-01-15 18:07:23

相关问题