我試圖從一個CSV格式的一列數據文件轉換成日期R.格式as.Date在R:不明確的格式和前導零
在此列元素的例子是「6182012」和2012年6月18日和2013年12月10日分別爲「12102013」。它們具有整數類型,格式爲[month, without leading zeros][day][year]
。
但是,我似乎無法讓R識別日期。我試過了:
>>> date.int <- 6182012
>>> as.Date(date.int, format="%m%d%Y")
Error in charToDate(x) :
character string is not in a standard unambiguous format
>>> as.Date(as.character(date.int), format="%m%d%Y")
NA
我不確定爲什麼第一次嘗試不使用我傳遞它的格式字符串,而是嘗試使用標準日期格式。我認爲這是一個類型問題。
我最好的猜測,爲什麼第二次嘗試不起作用的是,沒有一個月有前導零(「6」而不是「06」),而日期都是。
我的問題是:有沒有簡單的方法來通過as.Date
一個格式字符串,將此考慮在內?
編輯:我只是想出瞭解決方案,我會發布它只是爲了防止別人遇到這個問題(數據是FEC貢獻數據,所以我假設有人會)。
我認爲不具有幾個月前導零的問題,所以我剛添加一個:
add.zero <- function(dt) {
if (nchar(dt) == 7){
return(paste("0", dt, sep=""))
} else {
return(dt)
}
}
add.zero(as.character(date.int))
# or, if you have a vector of dates
dates.formatted <- unlist(lapply(dates, add.zero))
真棒。比我想出的解決方案更簡單。謝謝! – ahp 2014-11-01 15:29:15
@ Sumurai8是的,我會添加一些文字 – akrun 2014-11-01 16:05:28