计算R中的累积时间

2024-04-26

我有一个如下所示的数据框:

     POI   LOCAL.DATETIME
1    1     2017-07-11 15:02:13
2    1     2017-07-11 15:20:28
3    2     2017-07-11 15:20:31
4    2     2017-07-11 15:21:13
5    3     2017-07-11 15:21:18
6    3     2017-07-11 15:21:21
7    2     2017-07-11 15:21:25
8    2     2017-07-11 15:21:59
9    1     2017-07-11 15:22:02
10   1     2017-07-11 15:22:05

我希望能够计算(可能使用 lubridate)在每个 POI 花费的累积时间,并将它们组合成一个如下所示的表:

     POI   TOTAL.TIME
1    1     00:18:18
2    2     00:01:11
3    3     00:00:03

另外,我不确定如何处理 POI 之间的时间,例如第 2 行和第 3 行之间的 3 秒。我想也许我需要计算从第 1 行到第 3 行而不是第 1 行到第 2 行的时间。


要获取每个组期间的总时间,您首先需要创建组索引。我在用着rleid from data.table然后,您可以计算在每个组中花费的总时间,然后使用初始 POI 进行汇总sum.

df <- read.table(text="     POI   LOCAL.DATETIME
1     '2017-07-11 15:02:13'
1     '2017-07-11 15:20:28'
2     '2017-07-11 15:20:31'
2     '2017-07-11 15:21:13'
3     '2017-07-11 15:21:18'
3     '2017-07-11 15:21:21'
2     '2017-07-11 15:21:25'
2     '2017-07-11 15:21:59'
1     '2017-07-11 15:22:02'
1     '2017-07-11 15:22:05'",
                 header=TRUE,stringsAsFactors=FALSE)
df$LOCAL.DATETIME <- as.POSIXct(df$LOCAL.DATETIME)

library(dplyr)
df%>%
  mutate(grp=data.table::rleid(POI))%>%
  group_by(grp)%>%
  summarise(POI=max(POI),TOTAL.TIME=difftime(max(LOCAL.DATETIME),
                                     min(LOCAL.DATETIME),units="secs"))%>%
  group_by(POI)%>%
  summarise(TOTAL.TIME=sum(TOTAL.TIME))

# A tibble: 3 × 2
    POI TOTAL.TIME
  <int>     <time>
1     1  1098 secs
2     2    76 secs
3     3     3 secs

要获取分钟和秒,您可以使用as.period from lubridate:

library(lubridate)
df%>%
  mutate(grp=data.table::rleid(POI))%>%
  group_by(grp)%>%
  summarise(POI=max(POI),TOTAL.TIME=difftime(max(LOCAL.DATETIME),
                                    min(LOCAL.DATETIME),units="secs"))%>%
  group_by(POI)%>%
  summarise(TOTAL.TIME=sum(TOTAL.TIME))%>%
  mutate(TOTAL.TIME =as.period((TOTAL.TIME), unit = "sec"))

    POI   TOTAL.TIME
  <int> <S4: Period>
1     1      18M 18S
2     2       1M 16S
3     3           3S
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算R中的累积时间 的相关文章

  • 如何避免循环

    大家好 我是 R 新手 我有两个面板数据文件 其中包含 id date 和 ret 列 文件 A 的数据比文件 B 多得多 但我主要处理文件 B 数据 id 和 date 的组合是唯一标识符 有没有一种优雅的方式来查找 B 中的每个 id
  • 使用 Visual Studio 构建 R 包 (C API)

    我正在尝试使用 Visual Studio 构建一个简单的 R 包 这是我的代码 include
  • R 中第三维的平均值

    R中是否有任何快速方法或内置函数来计算基于第三维的平均值 例如我的数组是 1 1 2 1 1 3 2 2 4 2 1 2 1 11 13 2 12 14 3 1 2 1 21 23 2 22 24 我的输出是 1 2 1 mean 1 11
  • R+Hadoop:如何从HDFS读取CSV文件并执行mapreduce?

    在以下示例中 small ints to dfs 1 1000 mapreduce input small ints map function k v cbind v v 2 MapReduce函数的数据输入是一个名为small ints的
  • 列表列中的设置操作

    我正在尝试做集合运算在存储在列表列中的向量之间 例如this https stackoverflow com questions 38712196 text file to dataframe with a list column DT l
  • 计算分组序列中两个值之间的差异

    这是这篇文章的后续问题 循环遍历 R 中的数据帧并测量两个值之间的时间差 https stackoverflow com questions 44885856 loop through dataframe in r and measure
  • 尝试通过列表递归时,在 R 中出现错误“递归索引在级别 2 失败”

    当我尝试递归遍历图形顶点列表 将它们的值与列表中的一组颜色进行匹配时 出现错误 递归索引在级别 2 失败 我的颜色列表如下 colrs lt list l blue c red n gray50 然后我有一个 igraph 中的顶点列表vs
  • 如何在 R 中执行随机森林/交叉验证

    我无法找到对我尝试生成的回归随机森林模型执行交叉验证的方法 因此 我有一个数据集 其中包含 1664 个解释变量 不同的化学性质 和一个响应变量 保留时间 我正在尝试生成一个回归随机森林模型 以便能够预测给定保留时间的物质的化学性质 ID
  • 添加有关白天/黄昏/夜晚/黎明的信息以在 R 中跟踪数据

    我有一个数据集 其中包含几个月的日期时间 纬度和经度变量的跟踪数据 如下所示 gt start lt as POSIXct 2018 08 01 00 00 00 format Y m d H M S tz UTC gt datetime
  • 将值添加到 rCharts hPlot 工具提示

    我想通过 rCharts 向标准 Highcharts 工具提示添加一些额外的值 示例代码 require rCharts df lt data frame x c 1 5 y c 5 1 z c A B C D E name c K L
  • 在 R 中将文本文件拆分为段落文件

    我正在尝试将一个巨大的 text 文件拆分为多个 text 文件 每个文件仅包含一个段落 让我举个例子 我需要这样的文字 这是第一段 这没有任何意义 因为这只是一个例子 这是第二段 和前一段一样毫无意义 另存为两个独立的 txt 文件 其中
  • 在 Bookdown 中呈现附录图号

    Bookdown 是一个很棒的软件包 我期待看到它如何发展 但现在我在渲染数字方面遇到了麻烦pdf document2附录中的数字时的格式 具体来说 当带有标题的图形位于附录中时 图形编号应采用 A 1 A 2 B 1 B 2 等形式 但图
  • 为 RStudio Server 1.0.44 配置日志目录

    我在 CentOS 7 上运行 RStudio Server 1 0 44 根据文档 https support rstudio com hc en us articles 200554766 RStudio Server Applicat
  • 在R中绘制3x3方形网格

    我得到了一个数字列表 n 9 想将它们画在一个 3 3 的正方形网格中 每个网格填充相应的数字 我如何在 R 中执行此操作而不安装额外的软件包 例如情节 非常感谢 这里有一个ggplot解决方案比我预期的要难一点 Setup the dat
  • 为什么 rbind 会抛出警告

    这与是否有更优雅的方法将不规则的数据转换为整洁的数据框 https stackoverflow com questions 25102617 are there more elegant ways to transform ragged d
  • 如何从类外部更改公共 R6 类方法?

    我希望能够在我的 R6 类中重新定义公共方法 以便它根据该类保存的数据类型进行更改 如下所示 library R6 Simple lt R6Class Simple public list dt mtcars my print functi
  • R markdown 引文标识符

    R markdown 允许使用 YAML 元数据部分中的参考书目元数据字段指定参考书目文件 例如 title Sample Document output html document bibliography bibliography bi
  • 将函数应用于每个列组合

    我有一个数据框n列并希望对每个列应用一个函数组合列 这与如何cor 函数将数据帧作为输入并生成相关矩阵作为输出 例如 X lt data frame A rnorm 100 B rnorm 100 C rnorm 100 cor X 这将生
  • 为 ggplot 定义新的尺度轴变换

    我正在尝试创建一个squared使用 y 轴变换scales trans new但遇到错误 MWE data data frame x 1 10 y runif 10 z rnorm 10 10 library ggplot2 ggplot
  • 使 matplotlib 图形默认看起来像 R?

    Is there a way to make matplotlib behave identically to R or almost like R in terms of plotting defaults For example R t

随机推荐