58

ベクトルがあるとしましょう:

remove <- c(17, 18, 19, 20, 24, 25, 30, 31, 44, 45).

ベクトル内のすべての値を選択/抽出するにはどうすればよいですか? そのようです:17, 19, 24, 30, 44

seq関数:を使用しようとしていますseq(remove, 2)が、うまくいきません。

どんな助けでも大歓迎です。

4

3 に答える 3

144
remove[c(TRUE, FALSE)]

トリックを行います。


使い方?

Rでのインデックス作成に論理ベクトルが使用されている場合、インデックスベクトルが値を含むベクトルよりも短いと、それらの値が再利用されます。

ここで、ベクトルremoveには10個の値が含まれています。インデックスベクトルc(TRUE, FALSE)を使用する場合、実際のコマンドは次のとおりです。remove[c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE)]

したがって、奇数のインデックス番号を持つすべての値が選択されます。

于 2012-11-19T20:59:02.387 に答える
22
remove[seq(1,length(remove),2)]
于 2012-11-19T20:48:27.643 に答える
13

別の代替手段:

remove[seq_along(remove) %% 2 > 0]
# [1] 17 19 24 30 44
于 2014-09-22T21:08:12.980 に答える