R从那时开始得到特定的小时

时间:2015-05-24 22:35:45

标签: r

我有以下数据

Num    Date        Time
1      2015.05.21  12:12:12
2      2015.05.22  13:12:12  
3      2015.05.23  14:12:12
4      2015.05.24  15:12:12
5      2015.05.25  16:12:12

使用weekdays(as.Date(data$Date, format='%Y.%m.%d'))我可以获得一周中的相应日期。同样使用months我可以获得相应的月份。有没有办法只在新列中获取小时?像hours(as.Date(data$Time, format='%H:%M:%S'))之类的东西会为我提供以下输出。

Num    Date        Time      Hour
1      2015.05.21  12:12:12  12
2      2015.05.22  13:12:12  13  
3      2015.05.23  14:12:12  14
4      2015.05.24  15:12:12  15
5      2015.05.25  16:12:12  16

1 个答案:

答案 0 :(得分:2)

对于没有日期的时间值,R没有本机数据类型。使用示例数据

dd<-read.table(text="Num    Date        Time
1      2015.05.21  12:12:12
2      2015.05.22  13:12:12  
3      2015.05.23  14:12:12
4      2015.05.24  15:12:12
5      2015.05.25  16:12:12", header=T, stringsAsFactors=F)

你可以做到

transform(dd, Hour=as.POSIXlt(paste(Date, Time), format="%Y.%m.%d %H:%M:%S")$hour)

获取

  Num       Date     Time Hour
1   1 2015.05.21 12:12:12   12
2   2 2015.05.22 13:12:12   13
3   3 2015.05.23 14:12:12   14
4   4 2015.05.24 15:12:12   15
5   5 2015.05.25 16:12:12   16