如何根据最后一列中的重复项对数据框进行子集化?

时间:2014-06-18 20:54:08

标签: r aggregate subset plyr

我在R中有一个数据框,如下所示:

st  cd  ct   bg  bg2  pop
1   1   al   5   5.4  99
1   1   al   2   4.2  93
1   1   al   6   3.9  93
1   1   al   8   53.  45
1   1   al   1   5.4  08

如何对其进行子集以便将数据帧拆分为两个数据帧,其中包含除最后一列中重复的值之外的所有值?例如,上述数据框将被子集化为:

st  cd  ct   bg  bg2  pop
1   1   al   5   5.4  99
1   1   al   2   4.2  93
1   1   al   8   53.  45
1   1   al   1   5.4  08

st  cd  ct   bg  bg2  pop
1   1   al   5   5.4  99
1   1   al   6   3.9  93
1   1   al   8   53.  45
1   1   al   1   5.4  08

由于93在最后一列重复两次,弹出,它会被拆分,一行放入一个数据帧,一行放入另一行?有一个简单的方法吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

这个怎么样:

df1 = df[!duplicated(df[["pop"]], fromLast=TRUE), ]
df2 = df[!duplicated(df[["pop"]], fromLast=FALSE), ]

这还依赖于不会多次重复的事实。