2015-10-06 74 views
1

是否可以將數據加載到具有不同日期時間格式的R中?例如,我有開始.csv文件:在r中加載具有不同時間格式的csv文件

DATE,d1,d2 
1990-12-07 09:36,6.1,3.7 
1990-12-07 10:36,6.9,3.7 
1990-12-07 11:36,6.9,3.7 
1990-12-07 16:36,8.1,4 
1990-12-07 18:36,7,3.9 
1990-12-07 21:36,6.5,3.8 
1990-12-07 22:36,6.4,3.8 
07/13/1990 06:36,5.4,3.7 
07/13/1990 13:36,5.3,4.2 
07/13/1990 14:36,5.2,4.6 
07/13/1990 15:36,5,4.2 
07/13/1990 16:36,5.1,4.2 

其中日期時間格式從這兩種格式隨機變化。試圖將此文件加載到R,標準的方式,返回:

d <- read.table('filename.csv', 
       header = TRUE, sep = ',') 
> d[1:9,] 
       DATE T1 T2 
1 1990-12-07 09:36 6.1 3.7 
2 1990-12-07 10:36 6.9 3.7 
3 1990-12-07 11:36 6.9 3.7 
4 1990-12-07 16:36 8.1 4.0 
5 1990-12-07 18:36 7.0 3.9 
6 1990-12-07 21:36 6.5 3.8 
7 1990-12-07 22:36 6.4 3.8 
8 07/13/1990 06:36 5.4 3.7 
9 07/13/1990 13:36 5.3 4.2 

有沒有讓這些成函數read.table從標準格式的一種方式?

舉個例子:

這兩種類型的日期顯示爲:

yyyy-dd-mm HH:MM 

mm/dd/yyyy HH:MM 

不知道爲什麼,他們已經決定使用這個randon格式。

我期望的輸出是:

DATE,d1,d2 
1990-07-12 09:36,6.1,3.7 
1990-07-12 10:36,6.9,3.7 
1990-07-12 11:36,6.9,3.7 
1990-07-12 16:36,8.1,4 
1990-07-12 18:36,7,3.9 
1990-07-12 21:36,6.5,3.8 
1990-07-12 22:36,6.4,3.8 
1990-07-13 06:36,5.4,3.7 
1990-07-13 13:36,5.3,4.2 
1990-07-13 14:36,5.2,4.6 
1990-07-13 15:36,5,4.2 
1990-07-13 16:36,5.1,4.2 
+0

的格式? –

+0

這將是最好的格式yyyy-mm-dd HH:MM,as.posixct –

+0

這就是我發佈的內容。 –

回答

3

這是更好地確保你的價值觀是character類的,如果你要操縱它們,這樣就可以讀取數據時添加, stringsAsFactors = FALSE。然後,我們可以使用一些正則表達式,以操縱的興趣只值

讀取數據,同時增加, stringsAsFactors = FALSE

df <- read.csv(text = "DATE,d1,d2 
1990-12-07 09:36,6.1,3.7 
1990-12-07 10:36,6.9,3.7 
1990-12-07 11:36,6.9,3.7 
1990-12-07 16:36,8.1,4 
1990-12-07 18:36,7,3.9 
1990-12-07 21:36,6.5,3.8 
1990-12-07 22:36,6.4,3.8 
07/13/1990 06:36,5.4,3.7 
07/13/1990 13:36,5.3,4.2 
07/13/1990 14:36,5.2,4.6 
07/13/1990 15:36,5,4.2 
07/13/1990 16:36,5.1,4.2", stringsAsFactors = FALSE) 

識別錯誤的格式和修復你想讓它

indx <- grepl("/", df$DATE) 
df[indx, "DATE"] <- sub("(\\d{2})/(\\d{2})/(\\d{4})", "\\3-\\2-\\1", df[indx, "DATE"]) 
df 
#    DATE d1 d2 
# 1 1990-12-07 09:36 6.1 3.7 
# 2 1990-12-07 10:36 6.9 3.7 
# 3 1990-12-07 11:36 6.9 3.7 
# 4 1990-12-07 16:36 8.1 4.0 
# 5 1990-12-07 18:36 7.0 3.9 
# 6 1990-12-07 21:36 6.5 3.8 
# 7 1990-12-07 22:36 6.4 3.8 
# 8 1990-13-07 06:36 5.4 3.7 
# 9 1990-13-07 13:36 5.3 4.2 
# 10 1990-13-07 14:36 5.2 4.6 
# 11 1990-13-07 15:36 5.0 4.2 
# 12 1990-13-07 16:36 5.1 4.2 
相關問題