我试图提取列表中每个元素的第二个子元素,同时忽略R中的NA。这里有一个小例子:
mylist <- list(a=c(6,7),b=NA,c=c(8,9))
sapply(mylist, "[[", 1)
sapply(mylist, "[[", 2) #receive error
因为元素&#39; b&#39;只有一个子元素(NA),我在尝试提取第二个子元素时收到以下错误:
Error in FUN(X[[2L]], ...) : subscript out of bounds
我的目标是输出为:7,NA,9。换句话说,我想忽略并保留NA,以便输出的长度与列表中元素的数量相同< / strong>即可。我希望解决方案足够通用,也可以将它应用于每个列表中的不同子元素n。
答案 0 :(得分:30)
这应该做你想要的:
sapply(mylist,function(x) x[2])