0

我有一个包含十列的数据框:

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 比 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 回答