如何修复列的第一个值并获得连续的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绑定所需的值。
也许有比这更优雅的代码。
答案 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
我希望这有帮助!