20

我试图提取列表中每个元素的第二个子元素,同时忽略 R 中的 NA。这是一个小例子:

mylist <- list(a=c(6,7),b=NA,c=c(8,9))
sapply(mylist, "[[", 1)
sapply(mylist, "[[", 2) #receive error

因为元素“b”只有一个子元素 (NA),所以在尝试提取第二个子元素时收到以下错误:

Error in FUN(X[[2L]], ...) : subscript out of bounds

我的目标是输出为:7,NA,9。换句话说,我想忽略并保留 NA,以便输出与 list 中元素的数量相同。我希望解决方案足够通用,以便能够将其应用于每个列表中的不同子元素 n。

4

1 回答 1

41

这应该做你想要的:

sapply(mylist,function(x) x[2])
于 2013-10-01T15:38:43.777 回答