我有以下数据
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
答案 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