web-dev-qa-db-ja.com

ベクターから他のすべての要素を選択します

私がベクトルを持っていたとしましょう:

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

ベクター内の1秒ごとの値を選択/抽出するにはどうすればよいですか?そのように:_17, 19, 24, 30, 44_

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

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

38
user1313954
_remove[c(TRUE, FALSE)]
_

トリックを行います。


仕組み

Rのインデックス付けに論理ベクトルが使用されている場合、インデックスベクトルが値を含むベクトルよりも短い場合、それらの値はリサイクルされます。

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

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

97
Sven Hohenstein
remove[seq(1,length(remove),2)]
17
Grega Kešpret

ちょうど別の選択肢:

> remove[seq_along(remove) %% 2 > 0]
[1] 17 19 24 30 44
9
Jilber Urbina