您与[1]一起使用的代码始终引用时间戳向量的第一个元素.
要做你想做的事,你想看除除第一个元素之外的所有元素,除了最后一个元素.
mytimes <- data.frame(timestamps=c("2013-06-23 00:00:00", "2013-06-23 01:00:00", "2013-06-23 02:00:00", "2013-06-23 04:00:00"), mins=NA) mytimes$mins <- c(NA, difftime(mytimes$timestamps[-1], mytimes$timestamps[-nrow(mytimes)], units="mins"))
这段代码的作用是:
设置一个数据帧,这样你将保持的长度timestamps
和mins
相同的.
在该数据框架中,输入您拥有的时间戳以及您还没有任何分钟的事实(即NA
).
选择除时间戳的第一个元素之外的所有元素 mytimes$timestamps[-1]
选择除时间戳的最后一个元素之外的所有元素 mytimes$timestamps[-nrow(mytimes)]
减去它们difftime
(因为它们格式正确,你首先不必使它们成为POSIXct对象),单位为分钟.units="mins"
把NA放在前面,因为你的差异比行数少一点 c(NA, ...)
将所有内容放回原始数据框的mins列 mytimes$mins <-