2014-04-28 178 views
1

我想訪問列表中的某個元素,並將其存儲在data.frame中。如果特定對象沒有該元素,結果應該是NA。訪問列表中的元素r

實施例:

list 
$A 
"mark" "peter" "sam" "il" 

$B 
"dd" "pp" "tt" "ff" "jj" "rr" 

$C 
"aa" "aa" "aa" "aa" "aa" "aa" 

結果通過調用第六元件在整個列表應該是:

結果(數據幀。):

name value 

<NA> A 
rr B 
aa C 

任何建議?

+1

正如其他人在你以前的帖子說:請提供一個容易重複的例子。同時向我們展示您嘗試過的代碼。 – Henrik

回答

3

您可以使用sapplydata.frame

# The list 
l <- list(A = c("mark", "peter", "sam", "il"), 
      B = c("dd", "pp", "tt", "ff", "jj", "rr"), 
      C = c("aa", "aa", "aa", "aa", "aa", "aa")) 

# extract sixth element in each vector 
res <- sapply(l, "[", 6) 

# combine to data frame 
dat <- data.frame(name = res, value = names(res)) 

# name value 
# A <NA> A 
# B rr B 
# C aa C 
+0

太棒了,非常感謝!我嘗試使用'sapply',但不知道「[」元素。 – Makaroni

+0

@Makaroni FWIW,'「[」'是一個你可以讀作「子集」的函數。見'?「[」'。 – Justin

+0

@Justin謝謝!我現在有一個簡單的子問題:如果我想提取這個列表的最後一個元素,例如'''''''''''''''''''''''''''''''''''''''''''''''' – Makaroni