For循环计算时间戳之间的时间

For循环计算时间戳之间的时间,r,R,所以,我绝对不擅长循环(如果您有任何推荐的文档来进一步练习,请让我知道)。但是,现在我想计算每个实例的时间戳与之前的实例(对于一些100000个实例)之间的时间差。举例说明(数据集“测试”): 时间戳采用POSIXct格式。我想要实现的是,只要是同一辆车,循环计算每辆车与之前实例的时间差(以分钟为单位)。因此,我想得到以下结果: [1] N/A [2] 30 [3] 45 [4] N/A [5] 660 我通过以下方法计算了两个实例之间的时间: difftime(test$timestamp[

所以,我绝对不擅长循环(如果您有任何推荐的文档来进一步练习,请让我知道)。但是,现在我想计算每个实例的时间戳与之前的实例(对于一些100000个实例)之间的时间差。举例说明(数据集“测试”):

时间戳采用POSIXct格式。我想要实现的是,只要是同一辆车,循环计算每辆车与之前实例的时间差(以分钟为单位)。因此,我想得到以下结果:

[1] N/A
[2] 30
[3] 45
[4] N/A
[5] 660
我通过以下方法计算了两个实例之间的时间:

difftime(test$timestamp[3],test$timestamp[(3-1)],units="mins") 
我开始将其放入一个循环中,如下所示:

for(i in test$timestamp){
minparked<-difftime(test$timestamp[i],test$timestamp[i-1],units="mins") 
}
for(测试$timestamp中的i){

minparked也许双for循环就可以了

output <- c()
for(car in unique(test$carName)){
  tmp <- test[test$carName==car,]
  out <- c(NA)
  for(j in 2:nrow(tmp)){
    out[j] <- difftime(tmp$timestamp[j],tmp$timestamp[j-1],units="mins") 
  }
  output <- c(output, out)
}

输出也许双for循环就可以了

output <- c()
for(car in unique(test$carName)){
  tmp <- test[test$carName==car,]
  out <- c(NA)
  for(j in 2:nrow(tmp)){
    out[j] <- difftime(tmp$timestamp[j],tmp$timestamp[j-1],units="mins") 
  }
  output <- c(output, out)
}

output这似乎是避免循环的一个很好的例子。有什么理由你真的想要一个吗?没有!只是觉得这是最好的方法..但真的很高兴不使用一个!这似乎是避免循环的一个很好的例子。有什么理由你真的想要一个吗?没有!只是觉得这是最好的方法..但真的很高兴不使用一个!Thanks的回答!但是,这并不能克服这样一个事实,即有许多不同的汽车名称,而不仅仅是一个(上面是数据的摘录,大约有700个不同的汽车名称)。代码是专门为此编写的。行“for(car in unique(test$carName)){”就是为每辆车选择数据的子集。不管不同的车名有多少对不起,我错了,我读得不够好!非常感谢,这一个有效!!不客气,但请记住,循环并不是在R中快速运行代码的最佳方法。除了像lappl这样的函数外,我没有很好的文档说明其他方法y、 sapply和vapply。但是如果你的数据不是很大,我认为运行for循环就足够了。谢谢你的回复!但是,这并不能克服这样一个事实,即有很多不同的汽车名称,而不仅仅是一个(上面是数据的摘录,大约有700个不同的汽车名称).代码是专门为此编写的。行“for(car in unique(test$carName)){”就是为每辆车选择数据的子集。不管不同的车名有多少对不起,我错了,我读得不够好!非常感谢,这一个有效!!不客气,但请记住,循环并不是在R中快速运行代码的最佳方法。除了像lappl这样的函数外,我没有很好的文档说明其他方法y、 但如果你的数据不是很大,我认为运行for循环就足够了。