在 R 中组合日、月、年、小时至今的时间

snr*_*999 8 r

day   month     year    hour
01     05      2017     00
05     12      2017     01
10     07      2017     23
Run Code Online (Sandbox Code Playgroud)

我没有分钟和秒列,现在我正在尝试以以下格式获取单个变量作为 date_time

2017-05-01 00:00:00
2017-12-05 01:00:00
2017-07-10 23:00:00
Run Code Online (Sandbox Code Playgroud)

使用以下代码时出现错误

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

提前致谢

akr*_*run 6

我们可以尝试将paste这些列与 一起使用sprintf,然后使用 转换为日期时间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"
Run Code Online (Sandbox Code Playgroud)

或者使用lubridate

library(lubridate)
with(df1, ymd_h(paste(year, month, day, hour, sep= ' ')))
Run Code Online (Sandbox Code Playgroud)