2015-09-10 69 views
1

我的數據包含在這種格式YYYY-MM-DD一些日期字段轉換日期SS中的R

id <- c(1,2,3,4,5) 
    d1 <- c("2001-01-01", "1999-12-01","2007-11-31", "1995-05-01", "2013-01-07") 
    datadd <- data.frame(id,d1) 

我需要轉換日期字段d1至以下格式mm/dd/yyyy的H:mm:ss的 所以數據的模樣:

id d1 
1 1/1/2001 0:00:00 
2 12/1/1999 0:00:00 
3 11/13/2007 0:00:00 
4 5/1/1995 0:00:00 
5 1/7/2013 0:00:00 
+0

什麼是日期字段的類?答案會有所不同。在你的例子中,'d1'將是一個'factor'。 – vpipkt

+0

你確定要'1/1/2001'而不是'01/01/2001'嗎? – akrun

回答

4

只需使用strptime(或as.Date)和format

> format(strptime(datadd$d1, format = "%Y-%m-%d"), "%m/%d/%Y %H:%M:%S") 
[1] "01/01/2001 00:00:00" "12/01/1999 00:00:00" "11/13/2007 00:00:00" 
[4] "05/01/1995 00:00:00" "01/07/2013 00:00:00" 

## format(as.Date(datadd$d1), "%m/%d/%Y %H:%M:%S") 

我想你也可以使用一些gsub太多,如果你想刪除單位數日和月的前導零。

2

lubridate包是你的朋友。它非常直觀。

## install and launch the {lubridate} package 
> dt <- "1/1/2001 0:10:00" 
> dt2 <- mdy_hms(dt) 
[1] "2001-01-01 00:10:00 UTC"