2016-08-24 90 views
1

我希望將我的csv文件導入到數據框中,但我的csv文件中的日期是非標準格式。R中的read.csv2日期格式

在第一列中的日期是按以下格式:

2016年9月8日

在我read.csv2功能中的一個參數是指定類和我指定此列作爲日期我在執行時收到以下錯誤:

Error in charToDate(x) : 
    character string is not in a standard unambiguous format 

我猜它不喜歡從要素類轉換日期Date類。

我讀過一點關於POSIXlt的內容,但是我不明白該函數的細節。

任何想法如何將類從因子轉換爲日期?

+1

不要讓'read.csv2'的'colClasses'選項做轉換成日期格式。相反,閱讀沒有該選項的數據,然後通過指定適當的格式轉換爲日期類。 'df1 < - read.csv2(text =「08.09.2016」,header = FALSE); df1 [,1] < - as.Date(df1 [,1],format =「%m。%d。%Y」)'。 – RHertel

回答

2

將字符轉換爲日期時,如果不符合標準,則需要指定格式。你得到的錯誤是as.Date("08.09.2016")的結果。但如果你做as.Date("08.09.2016", format = "%m.%d.%Y"),那很好。

我不確定是否可以將格式傳遞給read.csv2以獲得正確的日期格式(可能不是)。我只是簡單閱讀這個日期列作爲因素,然後在本專欄上自己做as.Date(as.character(), format = "%m.%d.%Y")

通常我們使用以下格式「dd/mm/yy」如何重新組織日期到該格式?

使用format(, format = "%d/%m/%y")


一個完整的例子:

format(as.Date("08.09.2016", format = "%m.%d.%Y"), format = "%d/%m/%y") 
# [1] "09/08/16" 
+1

將自己的格式傳遞給'read.csv2'當然是可以的 - 你必須先創建你自己的類 - http://stackoverflow.com/a/13022441/496803 – thelatemail

+0

@thelatemail與大量的答案。 'setClass'是最好的,因爲我認爲'Defaults'包已經不存在了。 –