Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 按列处理唯一值_R_Unique - Fatal编程技术网

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不只是在末尾,所以只需先重新排序。我只是使用了下面的答案,它工作得很好,无论如何谢谢。非常感谢它工作了,我花了一个小时试图弄清楚这一点。