【发布时间】:2016-08-23 17:10:48
【问题描述】:
我有一个这样的数据框:
names <- c('Mike','Mike','Mike','John','John','John','David','David','David','David')
dates <- c('04-26','04-26','04-27','04-28','04-27','04-26','04-01','04-02','04-02','04-03')
values <- c(NA,1,2,4,5,6,1,2,NA,NA)
test <- data.frame(names,dates,values)
这是:
names dates values
1 Mike 04-26 NA
2 Mike 04-26 1
3 Mike 04-27 2
4 John 04-28 4
5 John 04-27 5
6 John 04-26 6
7 David 04-01 1
8 David 04-02 2
9 David 04-02 NA
10 David 04-03 NA
我想删除带有 NA 值的重复项。因此,在这种情况下,我在 04-26 有来自 Mike 的有效观察,并且在 04-02 也有来自 David 的有效观察,所以第 1 行和第 9 行应该被删除,我最终会得到:
names dates values
1 Mike 04-26 1
2 Mike 04-27 2
3 John 04-28 4
4 John 04-27 5
5 John 04-26 6
6 David 04-01 1
7 David 04-02 2
8 David 04-03 NA
我尝试使用duplicated 函数,如下所示:
test[!duplicated(test[,c('names','dates')]),]
但这不起作用,因为某些NA 值位于有效值之前。如果不尝试merge 或制作另一个数据框,您有什么建议吗?
更新:我想保留 NA 不重复的行。
【问题讨论】:
-
如果有
NA但没有重复怎么办? -
我想保留
NA的值,不要重复
标签: r duplicates slice