1

私はこのようなデータセットを持っていますが、それははるかに長く、より多くの値を持っています:

dataset <- data.frame(grps = c("a","b","c","a","d","b","c","a","d","b","c","a"), response = c(1,4,2,6,4,7,8,9,4,5,0,3))

Rでは、削除する値のベクトルを使用して、値「b」または「c」を含むすべての行を削除したいと思います。

remove<-c("b","c")

実際のデータセットは非常に長く、何百もの値を削除する必要があるため、値を 1 つずつ削除するには非常に時間がかかります。

4

2 に答える 2

4

試す:

dataset[!(dataset$grps %in% remove),]
于 2013-03-06T19:18:39.637 に答える
1

もありますsubset

subset(dataset, !(grps %in% remove))

...これは実際には単なるラッパーであり、複数のサブセット基準がある場合に何度も何度も[書き込むことをスキップできます。dataset$しかし、ヘルプページが警告しているように:

これは、インタラクティブに使用することを目的とした便利な機能です。プログラミングには、「[」のような標準のサブセット関数を使用することをお勧めします。特に、引数「サブセット」の非標準の評価は、予期しない結果をもたらす可能性があります。

問題が発生したことはありませんが、Rコードの大部分は、比較的静的な入力を使用して自分で使用するためのスクリプトです。


2013-04-12

私は今問題を抱えています。CRANのパッケージを構築しているR CMD check場合、コードでこのように使用していると、NOTEがスローされます-の環境(グローバル変数ではない)内で評価している場合でも、がグローバル変数であるsubsetかどうか疑問に思います。したがって、コードがパッケージに含まれる可能性があり、NOTESについてぎこちなく感じる場合は、Rcosterの方法を使用してください。grpssubsetdataset

于 2013-03-06T20:36:00.697 に答える