0

我有一个看起来有点像以下的数据框:

   v1 v2 v3 v4 v5 v6
r1 1  2  2  4  5  9
r2 1  2  2  4  5  10
r3 2  2  2  4  5  9
r4 2  2  2  4  5  10

我想根据它们在 v1 中的值不同这一事实来选择行 r1 和 r3。该列中的数字范围从 1 到 100。这可能吗?如果可以,如何?

任何帮助都非常感谢,谢谢!

更新:

一些澄清: v1 中的值是从 1 到 100 的随机种子。基本上,我运行(在 NetLogo 中)一个模拟,该模拟使用 100 个不同的随机种子运行所有参数配置(v2 - v6)。我现在想选择属于相同参数配置的所有行,即如果 v2 = 2 和 v3= 5,则获取满足该条件并在 v1/随机种子中具有不同值的所有行。但是由于我有很多参数配置,所以我想通用地这样做,这样我就不必手动编写这些了。因此,问题是是否可以选择在多个列中相同但在一个特定列中不同的行。

4

1 回答 1

1

这是一种plyr用于将 data.frame 拆分为块的方法。每个块由第一列中具有相同值的块组成。我们只需返回每个块的第一行。像这样:

#  Here function(x) x[1,] - mean return the first row from each piece
ddply( df , .variables = "v1" , .fun = function(x) x[1,] )
#  v1 v2 v3 v4 v5 v6
#1  1  2  2  4  5  9
#2  2  2  2  4  5  9
于 2013-09-09T08:56:40.737 回答