我想字符串 「2013-JAN-14」 轉換成日期如下轉變:as.Date返回NA,同時從 'ddmmmyyyy'
sdate1 <- "2013-JAN-14"
ddate1 <- as.Date(sdate1,format="%Y-%b-%d")
ddate1
,但我得到:
[1] NA
我做錯了什麼?我應該爲此安裝一個軟件包(我嘗試安裝chron)。
我想字符串 「2013-JAN-14」 轉換成日期如下轉變:as.Date返回NA,同時從 'ddmmmyyyy'
sdate1 <- "2013-JAN-14"
ddate1 <- as.Date(sdate1,format="%Y-%b-%d")
ddate1
,但我得到:
[1] NA
我做錯了什麼?我應該爲此安裝一個軟件包(我嘗試安裝chron)。
適合我。它不適合你的原因可能與你的系統區域設置有關。
?as.Date
有以下說:
## This will give NA(s) in some locales; setting the C locale
## as in the commented lines will overcome this on most systems.
## lct <- Sys.getlocale("LC_TIME"); Sys.setlocale("LC_TIME", "C")
x <- c("1jan1960", "2jan1960", "31mar1960", "30jul1960")
z <- as.Date(x, "%d%b%Y")
## Sys.setlocale("LC_TIME", lct)
值得一試。
下面的解決方案可能不適用於導致as.Date()返回NA的每個問題,但它對某些工作,即以因子格式讀取Date變量時工作。
與stringsAsFactors該.csv只需閱讀= FALSE
data <- read.csv("data.csv", stringsAsFactors = FALSE)
data$date <- as.Date(data$date)
試圖(和失敗),與我的系統語言環境來解決問題NA後,該解決方案爲我工作。
我今天遇到了類似的NA問題,當我回到我的CSV文件時,發現Date單元格的格式化處於「自定義」模式而不是日期模式(在Excel中)。在我將其更改爲日期後,'as.Date'命令工作得很好。我知道你的問題已經解決,但我只是想爲這個問題提出另一種可能的情況。 – LearneR 2015-05-19 11:00:40