私がベクトルを持っていたとしましょう:
remove <- c(17, 18, 19, 20, 24, 25, 30, 31, 44, 45)
。
ベクター内の1秒ごとの値を選択/抽出するにはどうすればよいですか?そのように:_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