2014-04-25 33 views
0

我想要訪問作爲lapply輸入給出的列表中的對象的元素的名稱。以下是理想行爲,在這我只想粘貼對象的名稱和它的內容人爲的例子:使用在lapply迭代的對象的名稱

x <- list(a=1,b=2) 
lapply(x, FUN) 
$a 
[1] "a1" 

$b 
[1] "a2" 

它總是可以給在列表的名稱使用lapply()然後用x[[name_element]]在函數體中,但我相信它使代碼不太清晰。

+1

的因爲它的構造,'lapply()'沒有永遠訪問列表元素的名稱的方式,它是目前經營。這意味着,如果你想以這種方式使用'lapply()',我認爲你只需要咬緊牙關並使用名字來索引元素。 –

回答

0

mapply在列表和列表的名稱:

x <- list(a = 1, b = 2) 
y <- mapply(paste0, names(x), c(x), SIMPLIFY = FALSE) 

y 
$a 
[1] "a1" 

$b 
[1] "b2" 
+0

恐怕你錯過了我所說的「做作例子」的部分。重點不在於解決這個簡單的玩具問題,而是解決一般問題,其中您確實需要樂此不疲。 – gappy

+0

Gotcha。那麼我相信'mapply'就是答案。 – tmpname12345