我正在尝试删除所有具有重复值的行。因此,在示例中,我想删除具有2的行和在x列下具有6的3行。我已经尝试了df[!duplicated(xy$x), ]
但是这仍然给了我第一行重复,我不想要任何一行。
x <- c(1,2,2,4,5,6,6,6)
y <- c(1888,1999,2000,2001,2004,2005,2010,2011)
xy <- as.data.frame(cbind(x,y))
xy
x y
1 1 1888
2 2 1999
3 2 2000
4 4 2001
5 5 2004
6 6 2005
7 6 2010
8 6 2011
我想要的是
x y
1 1888
4 2001
5 2004
感谢任何帮助。我需要避免指定要删除的值,因为我正在处理具有数千条记录的数据帧。
答案 0 :(得分:2)
您可以统计并仅包含单身人士
xy[1==ave(xy$x,xy$x,FUN=length),]
x y 1 1 1888 4 4 2001 5 5 2004
答案 1 :(得分:1)
我们可以做到
xy[! xy$x %in% unique(xy[duplicated(xy$x), "x"]), ]
# x y
#1 1 1888
#4 4 2001
#5 5 2004
as
unique(xy[duplicated(xy$x), "x"])
给出重复的x
值。然后我们可以过滤掉那些。
答案 2 :(得分:1)
或者像这样:
xy[xy$x %in% names(which(table(xy$x)==1)),]
x y
1 1 1888
4 4 2001
5 5 2004