2017-05-24 61 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

相关问题