我正在轉換字符串的日期看起來像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?