mylist <- list(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
123, NULL, 456)
> mylist
[[1]]
NULL
[[2]]
NULL
[[3]]
NULL
[[4]]
NULL
[[5]]
NULL
[[6]]
NULL
[[7]]
NULL
[[8]]
NULL
[[9]]
NULL
[[10]]
NULL
[[11]]
[1] 123
[[12]]
NULL
[[13]]
[1] 456
私のリストには13個の要素があり、そのうち11個はNULLです。私はそれらを削除したいが、空でない要素のインデックスを保持する。R:リストからNULL要素を削除する
mylist2 = mylist[-which(sapply(mylist, is.null))]
> mylist2
[[1]]
[1] 123
[[2]]
[1] 456
これはうまくNULL要素を削除しますが、私は空でない要素がインデックスを再作成することにしたくない、すなわち、私はmylist2
が空でないエントリのインデックスが保存されている。このようなものを、見てみたいです。
> mylist2
[[11]]
[1] 123
[[13]]
[1] 456
誰かが道を見つけるかもしれませんが、私はあなたが「なぜそれはそのように印刷されていますか?」という罠に陥っていると思います。これらのインデックス番号はあなたのリスト要素の名前ではありません。名前はありません。 '名前(mylist)'をチェックしてください。だから彼らは要素がリストのどこにあるのかを示すヘルパーです。そのため、2つの要素だけでリストの11番目の位置を返すようにRに指示するのは難しいです。あなたは以下の答えとしてリストに名前を付けることができます。 –