day month year hour
01 05 2017 00
05 12 2017 01
10 07 2017 23
我没有列minute和seconds现在我尝试获取单个变量date_time,格式为
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")
先谢了
3条答案
按热度按时间lrpiutwd1#
我们可以尝试将
paste
列与sprintf
一起使用,然后使用as.POSIXct
转换为日期时间或者使用
lubridate
0s0u357o2#
由于年、月、日、小时存储在不同列中,为什么不使用
ISOdate
函数呢?例如:如果不想看到时区信息,只需将
ISOdate
Package 为as.Date
但是这会将对象的类从POSIXct更改为Date,并且(如果我错了请纠正我)不会真正删除时区信息。
这在另一个问题How to convert in both directions between year,month,day and dates in R?中讨论
myss37ts3#
您可以直接执行此操作,而无需使用
lubridate
生成字符串。这可能比使用字符串解析更可靠。