ベクトルがあるとしましょう:
remove <- c(17, 18, 19, 20, 24, 25, 30, 31, 44, 45)
.
ベクトル内のすべての値を選択/抽出するにはどうすればよいですか? そのようです:17, 19, 24, 30, 44
seq
関数:を使用しようとしていますseq(remove, 2)
が、うまくいきません。
どんな助けでも大歓迎です。
remove[c(TRUE, FALSE)]
トリックを行います。
使い方?
Rでのインデックス作成に論理ベクトルが使用されている場合、インデックスベクトルが値を含むベクトルよりも短いと、それらの値が再利用されます。
ここで、ベクトルremove
には10個の値が含まれています。インデックスベクトルc(TRUE, FALSE)
を使用する場合、実際のコマンドは次のとおりです。remove[c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE)]
したがって、奇数のインデックス番号を持つすべての値が選択されます。
remove[seq(1,length(remove),2)]
別の代替手段:
remove[seq_along(remove) %% 2 > 0]
# [1] 17 19 24 30 44