仅当 R 中的列值匹配时才计算 difftime

尼希尔查贝

如果列 serviceID 具有相同的值,我必须找到连续行的日期时间(以秒为单位)之间的差异。

日期:

约会时间 服务ID
2021-04-03 02:53:43 2000年
2021-04-03 02:53:45 2000年
2021-04-03 02:53:47 2000年
2021-04-03 02:53:49 2012年
2021-04-03 02:53:51 2012年
2021-04-03 02:53:53 2015年
2021-04-03 02:53:55 2015年
2021-04-03 02:53:57 2015年

输出 :

约会时间 服务ID 差异
2021-04-03 02:53:43 2000年 不适用
2021-04-03 02:53:45 2000年 2
2021-04-03 02:53:47 2000年 2
2021-04-03 02:53:49 2012年 不适用
2021-04-03 02:53:51 2012年 2
2021-04-03 02:53:53 2015年 不适用
2021-04-03 02:53:55 2015年 2
2021-04-03 02:53:57 2015年 2

这该怎么做?我试过这个,但给出了错误:

dt<-dt %>% 
group_by(serviceID) %>%
mutate(diff= as.numeric(difftime(dt$datetime, lag(dt$datetime))))

有人可以帮忙吗?谢谢。

罗纳克·沙阿

$使用dplyr管道请勿使用此外,明确说明 中的单位总是更安全difftime

library(dplyr)

dt <- dt %>% 
  group_by(serviceID) %>%
  mutate(diff= as.numeric(difftime(datetime, lag(datetime), units = 'secs'))) %>%
  ungroup

如果你想在data.table-

library(data.table)
setDT(dt)

dt[, diff := as.numeric(difftime(datetime, shift(datetime), units = 'secs')), serviceID]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用R中的循环回归的Difftime错误

仅当另一列在R中具有良好的值时,才连续列的总和

如何在R中以as.difftime定义+/-登录?

R difftime 关闭 1 年

仅当匹配多个条件时,才计算部分列中的唯一值

difftime中可能存在的错误-计算R中日期时间的差异

如果 R 中的字段为 NA,则将 difftime 计算为 Sys.Date

仅当满足多个条件时,才将不同列中的值匹配到行

仅当匹配 Eloquent 中的 ID 时才选择特定列

为什么`difftime`携带R中其他变量的label属性?

仅当R中存在列时,才使用unnest_wider

仅当R中的条件为true时才打印

R:仅当同一列中的两行中的value为true时,才将值添加到[row,column]中

创建一个新变量,仅当 R 中满足条件时才打印一系列列中的第一个值

R:仅当键值相同且键在连续行中重复时,才如何对行中的值求和?

R:以秒为单位将变量“difftime”转换为以天为单位的变量“difftime”

使用difftime()时如何提取时间单位?

R:仅当特殊正则表达式条件不匹配时才拆分

difftime与其他列中的先前非NA值

过滤列以仅显示有值时,并删除R中的其他值(R,dplyr,lubridate)

仅当2个变量的观测值在R中彼此匹配时,子集数据

仅当它们与查找中的类别ID相匹配时,才如何对excel中的值求和

仅当另一列的值为DAX时,PowerBi才计算日期

仅当内容匹配特定值时才渲染VUE插槽

Terraform:仅当变量匹配某些值时才创建块

计算不同行的列之间的时间差(difftime)

仅当项目在R中出现多次时才添加索引

仅缩放某些列R

仅当存在集合中的所有字符时才匹配