R-如何在同一列中将序列号与正常日期混合的序列号日期转换日期


#A dataset call "charDate" , class is "character"
charDate
[1] "2017-01-19" "42431"      "42455"      "42430"  "2017-01-08"  "2017-01-08" 

origin ="1900-01-01应用as.Date后,它变为NA

as.Date.character(charDate, origin = "1900-01-01")
[1] "2017-01-19" NA           NA           NA           "2017-01-08" "2017-01-08"

如何避免它成为NA

我们可以分两个步骤执行此操作。首先,将"木盘"转换为OP的帖子中,我们为数字元素提供了NAS。将与" new"(is.na(中的Na元素相对应的"木盘"的元素子集,将其转换为numeric类,然后进行as.Date

new <- as.Date(charDate, origin = "1900-01-01")
new[is.na(new)] <- as.Date(as.numeric(charDate[is.na(new)]), origin = "1900-01-01")
new
#[1] "2017-01-19" "2016-03-04" "2016-03-28" "2016-03-03" "2017-01-08" "2017-01-08"

数据

charDate <-  c("2017-01-19", "42431",      "42455",      "42430", 
                                   "2017-01-08",  "2017-01-08" )

最新更新