在数据框R的日期列中填写NA s
我的数据是这样的在数据框R的日期列中填写NA s,r,dplyr,R,Dplyr,我的数据是这样的 > sample ID Date 1 1 NA 2 1 NA 3 1 16436 4 1 NA 5 2 NA 6 2 16436 7 2 NA 8 2 NA 我想要的数据集是 > final ID Date 1 1 <NA> 2 1 <NA> 3 1 2015-01-01 4 1 <NA> 5 2
> sample
ID Date
1 1 NA
2 1 NA
3 1 16436
4 1 NA
5 2 NA
6 2 16436
7 2 NA
8 2 NA
我想要的数据集是
> final
ID Date
1 1 <NA>
2 1 <NA>
3 1 2015-01-01
4 1 <NA>
5 2 <NA>
6 2 2015-01-01
7 2 2015-01-01
8 2 2015-01-01
>最终版本
身份证日期
1 1
2 1
3 1 2015-01-01
4 1
5 2
6 2 2015-01-01
7 2 2015-01-01
8 2 2015-01-01
我使用的代码是
> final <- sample %>%
+ group_by(ID) %>%
+ mutate(Date = zoo:: na.locf(as.Date(Date,origin= "1970-01-01")))
Error: incompatible size (2), expecting 4 (the group size) or 1
>最终百分比
+分组依据(ID)%>%
+变异(日期=zoo::na.locf(如日期(Date,origin=“1970-01-01”))
错误:大小不兼容(2),应为4(组大小)或1
在此问题上的任何帮助都将不胜感激我们需要
na.rm=FALSE
。默认情况下,它是na.rm=TRUE
,在开始时删除na
值,以便输出的元素数比原始数据集中的元素数少。只有当输出元素的长度与原始数据集的长度相同时,dplyr::mutate
才会起作用
library(zoo)
library(dplyr)
sample %>%
group_by(ID) %>%
mutate(Date = na.locf(as.Date(Date, origin = '1970-01-01'), na.rm=FALSE))
# ID Date
# (int) (date)
#1 1 <NA>
#2 1 <NA>
#3 1 2015-01-01
#4 1 2015-01-01
#5 2 <NA>
#6 2 2015-01-01
#7 2 2015-01-01
#8 2 2015-01-01
图书馆(动物园)
图书馆(dplyr)
样本%>%
分组依据(ID)%>%
变异(日期=na.locf(as.Date(日期,起源=1970-01-01'),na.rm=FALSE))
#身份证日期
#(内部)(日期)
#1 1
#2 1
#3 1 2015-01-01
#4 1 2015-01-01
#5 2
#6 2 2015-01-01
#7 2 2015-01-01
#8 2 2015-01-01
我认为您的预期输出有误。第四个元素不应该是“2015-01-01”吗?