R 按列处理唯一值
所以我有上面的数据帧,我试图得到一个包含所有唯一数据记录及其相应值的数据帧。我试过使用R 按列处理唯一值,r,unique,R,Unique,所以我有上面的数据帧,我试图得到一个包含所有唯一数据记录及其相应值的数据帧。我试过使用unique()和!重复的 我想要的是: 我还能做什么 可复制代码: 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", "2
unique()
和!重复的
我想要的是:
我还能做什么
可复制代码:
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))
这是因为您不需要唯一的值,而是希望在存在现有值时删除NAs 您可以这样做,一方面获取所有唯一的日期值,另一方面获取不带NAs的数据子集,并将它们合并在一起。R将使用NAs完成缺少的值
merge(data.frame(da_rec = unique(test$da_rec)),
subset(test,!is.na(values)),
all.x=TRUE)
如果
NA
s始终位于末尾,则只需指定fromLast=TRUE
,然后指定!重复的
应该像在test[!duplicated(test$da_rec,fromLast=TRUE)中一样工作]
嘿,伙计,这不起作用,因为NA不只是在末尾,所以只需先重新排序。我只是使用了下面的答案,它工作得很好,无论如何谢谢。非常感谢它工作了,我花了一个小时试图弄清楚这一点。