2017-05-24 235 views
1
day month  year hour 
01  05  2017  00 
05  12  2017  01 
10  07  2017  23 

我沒有列,分和秒現在我試圖讓一個變量作爲DATE_TIME中的格式合併日,月,年,小時,日期時間中的R

2017-05-01 00:00:00 
2017-12-05 01:00:00 
2017-07-10 23:00:00 

收到錯誤,同時使用下面的代碼

df$date <- as.Date(with(df, paste(year, month, day,hour,sep="-")), 
      "%Y-%m-%d %H:%M:%S") 

在此先感謝

+0

'膏(年,月,日,小時,月= 「 - 」)'會給你''「2017-05-01-00」'不符合你給出的格式。另外,'as.Date'不會給你你需要的格式。 –

回答

1

我們可以嘗試paste山坳UMNS連同sprintf,然後將其轉換爲datetime與as.POSIXct

as.POSIXct(do.call(sprintf, c(df1, fmt = c("%02d-%02d-%4d %02d"))), format = "%d-%m-%Y %H") 
#[1] "2017-05-01 00:00:00 IST" "2017-12-05 01:00:00 IST" "2017-07-10 23:00:00 IST" 

或者使用lubridate

library(lubridate) 
with(df1, ymd_h(paste(year, month, day, hour, sep= ' '))) 
+0

謝謝@akrun,它如何考慮年,月,日,...得到o/p – snr999

+0

@ snr999是不是答案中的那個你所顯示的預期輸出 – akrun

+0

我們是否需要從因素轉換爲字符上面的變量通過使用lubridate得到輸出> – snr999

相關問題