我正在读一个CSV到一个变量“东西”,并强迫第一列到POSIXct(此列只有时间戳,形式为“2012-12-04 17:49:52”,所以这个效果很好)。POSIXct平等工作奇怪
stuff[,1]<-as.POSIXct(stuff[,1])
因为我有好几天的价值的数据,我则试图通过日期,打破东西:
control <- subset(stuff,as.Date(stuff[,1]) == '2012-11-27')
control.1 <- subset(stuff,as.Date(stuff[,1]) == '2012-11-28')
我觉得这不会将数据增长日期为分割我会期待的。 尾(控制)告诉我,最后一个值是在2012-11-27 15:54:21,而头(control.1)显示它的第一个值是2012-11-27 16:04:35。
因为某些原因,平等因此似乎在16:00左右的某个地方发生。我试图在强制使用POSIXct时指定时区,但这也没有帮助。有什么我可以做的白天子集(这是否有失败的原因)?我想提一提,我需要将小时信息保存在那里,因为我打算随后使用它来分割数据。
这是因为时区。您可以在as.Date中指定时区,默认情况下它是UTC,因此当您将时间戳转换为日期时,一些将落在不同的日期。确保你的时区在as.Date匹配你的时间戳时区 – ilya
我试图修复时间戳,说'stuff [,1] < - as.Date(stuff [,1],tzone =“PST”)',并指定时间区域也在平等检查中,但我得到了相同的结果。 有趣的是,我得到了正确的结果,如果我这样做: 'control < - subset(cases,cases [,1] <= as.POSIXct('2012-11-27 23:59:59'))' – padips