我正在转换字符串的日期看起来像12/8/12
,可能是一个相当迂回的方式1)添加前导零(零填充)的一天和然后使用我编写的自定义函数中的as.Date
函数转换为日期对象。R日期时间转换 - lapply和unlist转换为时代后的天
date_conversion <- function(date_string){
split <- unlist(strsplit(date_string, "/"))
split[1] = str_pad(split[1], 2, pad = "0")
split[2] = str_pad(split[1], 2, pad = "0")
t = as.Date(paste(split, collapse = "/"),format='%m/%d/%y')
return (t)
}
什么是非常令人困惑的是,我可以取回结果,我想,我想,当我请一个输入功能:
> date_conversion(test[1])
[1] "2012-12-12"
> typeof(date_conversion(test[1]))
[1] "double"
后来,当我使用lapply
,它返回字符串表示:
> lapply(test, date_conversion)
[[1]]
[1] "2012-12-12"
[[2]]
[1] "2015-12-12"
[[3]]
[1] "2015-09-09"
然后当我打电话unlist
的,日期是从纪元改为天:
unlist(lapply(test, date_conversion))
[1] 15686 16781 16687
我想日期的底层表示日以来的时代(因此typeof
收益加倍,但为什么会在列表值显示的日期格式更人类可读的形式,然后调用unlist
让他们去回这一天以来的时代形式?
此外,有没有一种优雅的方式来做这样的转换?也许我不应该使用Lapply?