如何删除观测值相同的基于R的标准中的观测值?

时间:2015-11-24 16:29:02

标签: r

我有以下数据框,我想根据三个标准删除观察结果:x = x,y = y和z> = 60。

df <- data.frame(x=c(1,1,2,2,3,3,4,4),
                 y=c(2011,2012,2011,2011,2013,2014,2011,2012),
                 z=c(15,15,60,60,15,15,30,15))

> df
  x    y  z
1 1 2011 15
2 1 2012 15
3 2 2011 60
4 2 2011 60
5 3 2013 15
6 3 2014 15
7 4 2011 30
8 4 2012 15

我正在寻找的数据框(x = 2中的哪一个被删除无关紧要):

> df1
  x    y  z
1 1 2011 15
2 1 2012 15
3 2 2011 60
4 3 2013 15
5 3 2014 15
6 4 2011 30
7 4 2012 15

我的第一个想法包括使用uniqueduplicate,但我似乎无法理解如何在实践中实施它。

1 个答案:

答案 0 :(得分:0)

这应该可以解决问题。查找重复的x和y条目,其中z也大于或等于60:

df[!(duplicated(df[,1:2]) & df$z >= 60), ]
#  x    y  z
#1 1 2011 15
#2 1 2012 15
#3 2 2011 60
#5 3 2013 15
#6 3 2014 15
#7 4 2011 30
#8 4 2012 15