2017-06-25 4 views
1

私は長さ1000のベクトルを持っています。これは100人の参加者のアンケート回答(数値)を含んでいます。すべての参加者の最初の3つの値を削除して、長さ700の新しいベクトルを作成したいと考えています(質問4-10への回答のみを含む)。ベクトルから100個のセクションを抽出します

私は、ベクトルのn番目の値を抽出する方法しか知りませんが、上記の問題を解決する方法を理解することはできません。

vector <- seq(1,1000,1) 

予想される出力:このスレッドが再現可能であるかに基づいて、サンプルデータを提供するための

4 5 6 7 8 9 10 14 15 16 17 18 19 20 24 ... 

答えて

1

感謝を。ここに1つの解決策があります

c(matrix(vector, 10)[4:10, ]) 

最初にベクトルを10行の行列に変換して、各列が参加者に帰属するようにします。その後、行のサブセットを使用して最初の3行を削除します。最後に、行列を再びベクトルに平坦化します。

1

マトリックスを使用して最初に構造化してから平坦化する方法があります。もうある程度類似の方法は、私が「論理パターンのインデックス」を呼び出していますものを使用することです:

head(   # just showing the first couple of "segments" 
    vector[ c(rep(FALSE, 3), rep(TRUE, 10-3)) ], 
    15) 
[1] 4 5 6 7 8 9 10 14 15 16 17 18 19 20 24 

この方法も、行を選択する[の2つの引数バージョン内で使用可能な論理的なパターンのインデックスを使用して列を鉱石。これはRの論理インデックスのリサイクルのために働く。

+0

この回答もありがとうございます。申し訳ありませんが私は両方の答えを承認することはできません。 – Rizzla

関連する問題