嗨,我有一个R的奇怪行为:
我有一个包含日期,时间和一些值的数据集:
Date Time Global_active_power
2006-12-16 17:24:00 4.216
2006-12-16 17:25:00 5.360
2006-12-16 18:24:00 6.216
2006-12-16 18:25:00 5.390
2006-12-17 07:24:00 3.216
2006-12-17 17:25:00 1.360
2006-12-17 17:24:00 2.216
2006-12-17 18:25:00 6.360
从前2列开始,我想构建一个包含1列中日期+时间的组合列 - 类似于:
Date Time Global_active_power combinedTime
2006-12-16 17:24:00 4.216 2006-12-16 17:24:00
现在的问题是,在这样做时,我总是将今天的日期混合到其中:
Date Time Global_active_power combinedTime
2006-12-16 17:24:00 4.216 2006-12-16 2017-07-23 17:24:00
这是我的代码:
Data$Date<- as.Date(Data$Date, "%d/%m/%Y")
Data$Time<-strptime(Data$Time, "%H:%M:%S")
Data1 <-subset(Data, (Date < "2007-02-03" ) )
Data2 <-subset(Data1,(Date > "2007-01-31" ) )
t <- paste((Data2$Date), (Data2$Time))
Data2<-cbind(Data2,t)
在我的时间专栏中,我只有次。我认为我的问题来自于我在代码中运行此行:
Data$Time<-strptime(Data$Time, "%H:%M:%S")
在那里,我突然得到今天的日期加上我的专栏时间。为什么?我只想要时间
感谢您的帮助
答案 0 :(得分:1)
问题确实在您预期的位置:
> strptime(Data$Time, "%H:%M:%S")
[1] "2017-07-23 17:24:00 CEST" "2017-07-23 17:25:00 CEST" "2017-07-23 18:24:00 CEST" "2017-07-23 18:25:00 CEST"
[5] "2017-07-23 07:24:00 CEST" "2017-07-23 17:25:00 CEST" "2017-07-23 17:24:00 CEST" "2017-07-23 18:25:00 CEST"
strptime还包括今天的日期,而不仅仅是时间。你可以像这样解决它:
Data$Combined = as.POSIXct(paste0(Data$Date,Data$Time))