2015-01-15 29 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

相關問題