20

R の NA を無視して、リスト内のすべての要素の 2 番目のサブ要素を抽出しようとしています。小さな例を次に示します。

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

要素 'b' には 1 つのサブ要素 (NA) しかないため、2 番目のサブ要素を抽出しようとすると、次のエラーが表示されます。

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

私の目標は、出力が 7、NA、9 になることです。つまり、出力が list の要素数と同じ長さになるように、NAを無視して保持したいと考えています。各リストの別のサブ要素 n にも適用できるように、ソリューションを一般的なものにしたいと考えています。

4

1 に答える 1

41

これはあなたが望むことをするはずです:

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