R 在列中查找时间间隔

R 在列中查找时间间隔,r,date,R,Date,我觉得一定有更干净的方法来做这件事。这是一个愚蠢的示例,但假设我有这样的data.frame(忽略具有恒定间隔的明显的无意义): 所以说我实际上不知道时间间隔是什么,或者它不是常数。我的问题是,在列中查找日期间隔的最佳方法是什么。我使用循环提出了一些想法,但我想知道是否有更好的解决方案: int_time = c() for(i in 1:nrow(df)){ tmp = as.numeric(df$date_time[i+1] - df$date_time[i] ) int_time

我觉得一定有更干净的方法来做这件事。这是一个愚蠢的示例,但假设我有这样的data.frame(忽略具有恒定间隔的明显的无意义):

所以说我实际上不知道时间间隔是什么,或者它不是常数。我的问题是,在列中查找日期间隔的最佳方法是什么。我使用循环提出了一些想法,但我想知道是否有更好的解决方案:

int_time = c()
for(i in 1:nrow(df)){
  tmp = as.numeric(df$date_time[i+1] - df$date_time[i] )
  int_time = c(tmp, int_time)
}

diff
接受多种数据类型,并有一个专门用于POSIXt类向量的方法。在这种情况下

head(diff(df$date_time))
返回

Time differences in mins
[1] 5 5 5 5 5 5
因为你是采取两两差异,你会失去一个观察。要将此内容重新放入数据集,您有两个选择

对于d_i=x_i-x_{i-1},使用

df$int_time <- c(NA, diff(df$date_time))

df$int\u时间可能
diff(df$date\u时间)
?我把它复杂化了。想把它作为一个答案吗?那么我可以接受了。你能推荐最好的方法将其添加回data.frame吗<代码>>df$int\u时间
df$int_time <- c(NA, diff(df$date_time))
df$int_time <- c(diff(df$date_time), NA)