微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何进行多个操作来对 R 中不同数据集的值求和包括时间格式

如何解决如何进行多个操作来对 R 中不同数据集的值求和包括时间格式

我有一个工具可以用来计算某些程序的运行时间,多次为我提供相同的 1 行表以及结果数字(6 列,带有列名的标题)。我正在为三个程序执行此操作,我必须对结果进行求和/组合,就好像它是一个程序,而不是三个程序。 (例如,如果程序1运行需要1小时,程序2需要1小时,程序3需要3小时,那么结果相加,总共有5小时)。

来自此类输出表的 5 个值看起来像“304.34”(十进制数,通常以数百为单位,并且必须求和),但其中一列有时间,格式如下:01:04:56 .我想制作一个包含 3 个表(对于提到的三个程序)的 R 脚本,并将其相加以生成一个表。 (具有相同的标题

问题是,我很难想到一个函数可以做到这一点,并正确地对时间列和其他列求和。谢谢!


**示例:

df <- read.table(text = "col1 col2 col3 col4 col5 col6_time 
300.45 201.4 100.11 100.35 101 01:10:05
300 202.1 105.20 101.10 100 01:00:01
250.10 200.4 101.21 102 100 00:45:23",header = T)

**desired output (sum values,keep header):**

    col1  col2   col3   col4 col5 col6_time
1 850.55 603.9 306.52 303.45  301  02:55:28

解决方法

您可以将字符列转换为句点对象并求和。

library(dplyr)
library(lubridate)

df %>%
  summarise(across(where(is.numeric),sum),across(where(is.character),~format(parse_date_time(seconds_to_period(sum(period_to_seconds(hms(.)))),"HMS"),'%T')))

#    col1  col2   col3   col4 col5 col6_time
#1 850.55 603.9 306.52 303.45  301  02:55:29

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。