具有固定值的Difftime

时间:2018-03-26 16:53:13

标签: r

如何修复列的第一个值并获得连续的difftime?

 df<- data.frame(Date = c("2012-07-13 15:01:32", "2012-07-05 18:26:31", "2012-07-14 20:23:21"), value=1:3) 

    time=NULL
    for(i in 2:nrow(df)) {
      x<-as.numeric(difftime(df[1,"Date"], df[i,"Date"], units = "hours"))
      time<-rbind(time, x)
    }

我试过这个并且它有效但我需要第一个时间值作为NA,否则我有一个值小于将它与原始df绑定所需的值。

也许有比这更优雅的代码。

2 个答案:

答案 0 :(得分:2)

difftime是矢量化的。你只需按照原样使用它:

c(NA, difftime(df[1,1],df[-1,1],units = "hours"))
[1]1 NA 188.58361 -29.36361

答案 1 :(得分:0)

您可以将代码修改为

time <- NA
for(i in 2:nrow(df)) {
  x<-as.numeric(difftime(df[1,"Date"], df[i,"Date"], units = "hours"))
  time<-c(time, x)
} 
df$Time <- time

我希望这有帮助!