1

私と同僚は順番にデータを入力します。ある日は私が行い、次の週は他の誰かが行い、私たちは常に一度に 50 個の観察結果を (Excel シートに) 入力します。したがって、101 から 150 まで、および 301 から 350 までのケースに入力したことはほぼ間違いありません。次に、データを R に読み取って操作します。入力したケースのみを選択するにはどうすればよいですか?

Excelシートからコピーすることでできることがわかりましたが、Rでできるのでしょうか?

Rでのデータのサブセット化に関するいくつかのドキュメントを確認し、次のようなことも試しました

data<-data[101:150 & 301:350,]

しかし、うまくいきませんでした。誰かがこの質問に答えるより包括的なガイドに私を案内してくれたら幸いです.

4

1 に答える 1

4

あなたが与えた特定の例に対する答えは

data[c(100:150,300:350),] 

希望するケースについて、より具体的に教えていただけますか? 各 100 の最初の 50 か、各 300 の最初の 50 か、それとも ... ? n各ケースの最初のインデックスを取得するには、次のmようなものを使用できます

c(outer(0:4,seq(1,100,by=10),"+"))

(ここではn=5, m=10); outerは一般化された外積です。代替の(そしておそらくより直感的な)ソリューションはrep、たとえば、を使用します

rep(0:4,10) + rep(seq(1,100,by=10),each=5)

Rは必要に応じてベクトルを自動的にリサイクルするため、実際にはこれを次のように短縮できます。

0:4 + rep(seq(1,100,by=10),each=5)

しかし、より理解しやすいように、少し長い定式化をお勧めします。

于 2012-12-27T16:34:55.110 に答える