更改日期列中的时钟时间

时间:2014-03-31 16:42:04

标签: r

我有一个像这样的大数据集:

SUB  DATE   
 1   4/16/2010 6:25 
 2   4/2/2010 7:35    
 3   5/30/2010 7:41      
 4   6/18/2010 8:10      
 5   6/8/2010 8:26   
...

我想将DATE的时钟时间更改为00:00(AM)。预期的输出应如下所示:

SUB  DATE   
 1   4/16/2010 00:00 
 2   4/2/2010 00:00    
 3   5/30/2010 00:00      
 4   6/18/2010 00:00      
 5   6/8/2010 00:00   
...

有没有人知道要实现这个目标?

2 个答案:

答案 0 :(得分:0)

使用lubridate包非常容易:

require(lubridate)
largedata$DATE2 <- mdy_hm(largedata$DATE)
hour(largedata$DATE2) <- 0
minute(largedata$DATE2) <- 0

答案 1 :(得分:0)

strftime(paste(strptime(data$DATE,  "%m/%d/%Y"), "00:00"), "%Y-%m-%d %H:%M")

修改

似乎这个解决方案也没有返回“POSIXct”对象。如果您查看?strptime文档,您会看到他们特别提到它:

  

格式
  一个字符串。格式方法的默认值为“%Y-%m-%d%H:%M:%S”(如果有)   组件的时间分量不是午夜,否则为“%Y-%m-%d”。

之前已在此讨论,此处提到了一个临时解决方法: as.POSIXct with datetimes including midnight