我有一个采用以下 struct 的框架:

start_time <- c("09:00:00.000", "09:23:00.000", "09:23:00.000", "15:37:00.000")
end_time <- c("09:50:00.000", "09:50:00.000","09:50:00.000","16:10:00.000")
CO.TimeTaken <- data.frame(start_time, end_time)

> CO.TimeTaken

   start_time     end_time
1 09:00:00.000 09:50:00.000
2 09:23:00.000 09:50:00.000
3 09:23:00.000 09:50:00.000
4 15:37:00.000 16:10:00.000

我想改变并创建一个名为TimeTaken的新列,这是一个数字列,包含基于end_time减go start_time的分钟值,

我试过使用lubridate包提取分钟,但输出不是我想要的理想之一.这些是我使用的步骤.

library(lubridate)
CO.TimeTaken$start_time <- hms(as.character(CO.TimeTaken$start_time))
CO.TimeTaken$end_time <- hms(as.character(CO.TimeTaken$end_time))
CO.TimeTaken$TimeTaken <- CO.TimeTaken$end_time - CO.TimeTaken$start_time

以上代码的输出

> CO.TimeTaken
  start_time   end_time  TimeTaken
1   9H 0M 0S  9H 50M 0S     50M 0S
2  9H 23M 0S  9H 50M 0S     27M 0S
3  9H 23M 0S  9H 50M 0S     27M 0S
4 15H 37M 0S 16H 10M 0S 1H -27M 0S

我应该怎样做才能达到上述结果?

推荐答案

一种 Select 是做以下操作,但我不确定这是否是你在寻找的:

> library(dplyr)
> CO.TimeTaken |> 
+   mutate(
+     TimeTaken = as.numeric(difftime(as.POSIXct(end_time, format = "%H:%M:%OS"), 
+                                     as.POSIXct(start_time, format = "%H:%M:%OS"), 
+                                     units = "mins"))
+   )
    start_time     end_time TimeTaken
1 09:00:00.000 09:50:00.000        50
2 09:23:00.000 09:50:00.000        27
3 09:23:00.000 09:50:00.000        27
4 15:37:00.000 16:10:00.000        33

R相关问答推荐

有没有方法将琴弦完全捕捉到R中的多边形?

R:连接值,而不是变量?

次级y轴R gggplot2

在GGPLATE中将突出的点放在前面

R s iml包如何处理语法上无效的因子级别?'

在组中添加值增加和减少的行

在rpart. plot或fancyRpartPlot中使用带有下标的希腊字母作为标签?

在使用tidyModels和XGBoost的二进制分类机器学习任务中,所有模型都失败

R spatstat Minkowski Sum()返回多个边界

哪一行和行和 Select 特定行,但是考虑到Nas

基于R中的间隔扩展数据集行

列名具有特殊字符时的循环回归

在纵向数据集中创建新行

变长向量的矢量化和

如何在R中创建条形图,使条形图在y轴上围绕0.5而不是0构建条形图?

如何在内联代码中添加额外的空格(R Markdown)

R:如何在数据集中使用Apply

附加中缀操作符

为什么在POSIXct-times的向量上循环会改变R中的类型?

创建两个变量组合的索引矩阵