我有一个类似于以下内容的数据框:
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中)运行所有参数配置(v2-v6)的模拟,其中包含100个不同的随机种子。我现在想要选择属于相同参数配置的所有行,即如果v2 = 2且v3 = 5,请获取满足该条件且在v1 /随机种子中具有不同值的所有行。但由于我有很多参数配置,我想一般这样做,所以我不必手动编写这些。因此,问题是,是否可以选择多个列中相同但在一个特定列中不同的行。
答案 0 :(得分: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