按列处理唯一值

时间:2017-06-29 17:38:00

标签: r unique

The Data Frame Sample

所以我有上面的数据框,我试图获得一个包含所有唯一da_rec及其适当值的数据框。我尝试过使用unique()!duplicated

我想要的是:

Need

我还能做什么?

可重复的代码:

test = data.frame(da_rec = c("2016-04-01", "2016-04-01", "2016-04-04", "2016-04-05", "2016-04-06", "2016-04-07", "2016-04-08",
"2016-04-08", "2016-04-11", "2016-04-11", "2016-04-12", "2016-04-12", "2016-04-13", "2016-04-14",
"2016-04-15", "2016-04-15", "2016-04-18", "2016-04-19", "2016-04-19", "2016-04-20", "2016-04-20",
"2016-04-21", "2016-04-21", "2016-04-22", "2016-04-25", "2016-04-26", "2016-04-26", "2016-04-27",
"2016-04-27", "2016-04-28", "2016-04-28", "2016-04-29", "2016-04-29"), values = c(NA,  1, NA, NA, NA, NA, NA,  
1, NA,  1, NA,  2, NA, NA, NA,  1, NA, NA,  3, NA,  1, NA,  1, NA, NA, NA,  2, NA,  1, NA,  2, NA, 3))

1 个答案:

答案 0 :(得分:0)

这是因为您不想要唯一值,您希望在存在现有值时删除NA​​s。

您可以这样做的方法是一方面获取所有唯一的日期值,另一方面获取没有NA的数据子集,并将它们合并在一起。 R将使用NA完成缺失值。

merge(data.frame(da_rec = unique(test$da_rec)),
      subset(test,!is.na(values)),
      all.x=TRUE)