我有以下数据框,我想根据三个标准删除观察结果: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
我的第一个想法包括使用unique
或duplicate
,但我似乎无法理解如何在实践中实施它。
答案 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