【发布时间】:2017-02-14 16:55:36
【问题描述】:
我有一个像
这样的时间戳向量time_stamp <- c("7/1/2013", "7/1/2013 12:00:30 AM", "7/1/2013 12:01:00 AM", "7/1/2013 12:01:30 AM", "8/1/2013","8/1/2013 11:02:30 PM")
我想将此格式化为日期类。我试过了
strptime(time_stamp, format = "%d/%m/%Y %H:%M:%S", tz = "GMT")
但由于两个时间戳缺少时间,因此会导致NAs,默认情况下应替换为:12:00:00。
我可以运行一个循环,例如:
for (i in 1:length(time_stamp))
{
if(nchar(time_stamp[i])<11)
{
time_stamp[i] <- paste(time_stamp[i], " 12:00:00 AM")
}
}
time_stamp <- format(strptime(time_stamp, format = "%d/%m/%Y %I:%M:%S %p", tz = "GMT"), "%d/%m/%Y %H:%M:%S", tz = "GMT")
有没有更快更干净的方法来完成这个?该向量是大型数据集的一部分,所以我不想循环它。
【问题讨论】:
标签: r datetime format converter