0

10列のデータフレームがあります。

A  B   C   1  1  1  1  1  1  1
B  M   J   2  1  2  2  2  2  2
J  K   Z   3  3  3  3  3  3  3.1
V  N   I   4  4  4  4  4  4  4

4から10列まで同じ値を持つ行を除外したいと思います。異なる行を比較するための解決策を見つけましたが、ここでは1行以内について話しています。したがって、出力は

B  M   J   2  1  2  2  2  2  2
J  K   Z   3  3  3  3  3  3  3.1

最初と最後の行の4列目から10列目は同じ値であるためです。各値を1つずつ比較することで実行できますが、データフレームは非常に大きくなります(約100,000行)。

4

1 に答える 1

6

次のようなものはどうですか?

 ##Work out the rows to keep
 ##dd is your data frame
 rows = apply(dd[, 4:10], 1, function(i) length(unique(i)) > 1)

その後、通常どおりサブセット化します

 dd[rows,]

〜100K行はそれほど多くありません。

于 2012-09-18T12:27:18.610 に答える