2016-04-08 166 views
1

我有一個列表(mydata $ notes),我想從中提取數據。代碼看起來像這樣,如果我想提取「位置」 - 這工作正常。現在從列表中提取數據[R]

location <- unlist (lapply(mydata$notes, function(e) e$location)) 

,我可能有多個變量我想提取,說20的載體,「位置」,「VAR1」,「VAR2」,「VAR3」等,以原子向量

names(unlist(mytree$notes[[1]])) 

如何循環我的第一個代碼以提取此名稱變量中給出的所有變量?

乾杯

回答

0

定義一個矢量來容納你想要提取的列表元素。然後在您致電lapply()的每個清單上致電unlist()

vars <- c("location", "var1", "var2", "var3") 

location <- unlist (lapply(mydata$notes, 
          function(e) { 
           unlist(e[vars]) 
          })) 

請注意,我所做的唯一真正的變化是,而不是返回的原子矢量e$location我,而不是返回包含幾個向量倒塌從每個列表元素。

+0

謝謝!但是現在我的「位置」變量是一個字符。我想用「變量」中指定的元素返回矩陣或數據框。我該怎麼做呢? –

+0

請參閱[this SO post](http://stackoverflow.com/questions/4227223/r-list-to-data-frame)瞭解如何執行此操作。 –