私は単純なデータフレームを持っています:
> df <- data.frame(i=c(1:20), x=c(1:10, rep(NA, 10)))
> df
i x
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10
11 11 NA
12 12 NA
13 13 NA
14 14 NA
15 15 NA
16 16 NA
17 17 NA
18 18 NA
19 19 NA
20 20 NA
次のように実行できる非 NA 部分の行名を抽出したい:
> rownames(df[c(1:20),][!is.na(df$x),])
[1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
ここまでは順調ですね。ここで、最初の行をスキップしたいのですが、何らかの理由で、コマンドは同じ長さの出力を返し、NA セルも含まれています。
> rownames(df[c(2:20),][!is.na(df$x),])
[1] "2" "3" "4" "5" "6" "7" "8" "9" "10" "11"
同じサイズのベクトルを取得したり、除外されたと思われる行を含むベクトルを取得したりすることは意味がありません。上記のデータ フレームでわかるように、df$x[11] は間違いなく NA です。具体的には、データ フレームの抽出を観察しようとしていますが、NA を含む行を除外しています。あらゆるアドバイスをいただければ幸いです。