减去 r 中的时间

2024-04-12

我有一个包含两个时间变量的数据集:EndVisitTime and BoxTime。我每天都会制作数据集(因此这些观察结果都是在一天内进行的):

Date<-"2014-8-12"
EndVisitTime<-c("00:00:32",  "00:04:52",  "00:10:01", "00:23:38",  "00:31:28") # class: factor
BoxTime<-as.integer(c("341",  "229", "301",  "810",  "363")) # class integer in seconds
df<-data.frame(Date, EndVisitTime, BoxTime)

我想计算StartVisitTime;那是EndVisitTime - BoxTime.

当访问前一天开始时,我想知道正确的开始日期(date = 2014-8-11)。 我的问题是如何减去BoxTime(以秒为单位)从EndVisitTime得到正确的StartVisitTime与权利StartDate??

我已经尝试了几个选项,但我无法进一步,因为它们不断添加当前日期或导致无法转换为时间日期格式的 0 到 1 特征。

# This is my most successful attempt
df$EndTime<-strptime(df$EndVisitTime, format="%H:%M:%S")
df$BoxTime<-as.numeric(df$BoxTime)
library("chron")
df$x<-chron(times=(df$BoxTime/(60*60*24)))
df$StartVisitTime<-df$EndTime-df$x ### This does not work!

非常感谢并希望您的帮助!


使用 POSIXct 日期,可以直接添加秒。

样本数据

df<-data.frame(EndVisitTime=c("00:00:32",  "00:04:52",  "00:10:01", "00:23:38",  "00:31:28"),
               BoxTime=c("341",  "229", "301",  "810",  "363"),
               Date = "2014-8-12",stringAsFactor=FALSE)

将日期和时间合并为一个字符串

df$EndTimeStr<-do.call(paste, df[,c("Date", "EndVisitTime")])

转换为 POSIXct 时间

df$EndTime<-as.POSIXct(df$EndTimeStr,format="%Y-%m-%d %H:%M:%S")

减去秒数

df$BoxTime<-as.numeric(df$BoxTime)
df$StartVisitTime<-df$EndTime-df$BoxTime 
df

Ref 如何在 POSIXlt 时间中添加/减去时间,同时在 R 中保留其类? https://stackoverflow.com/questions/8857287/how-to-add-subtract-time-from-a-posixlt-time-while-keeping-its-class-in-r

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

减去 r 中的时间 的相关文章

  • R: Knit 给出 SQL-chunk 错误

    我想编织 R markdown 的输出 其中包括几个 SQL 块 但是 如果我开始编织 就会收到错误消息 Line 65 Error in eval expr envir enclos object pp dataset not found
  • 提取字符串中最后一个句点后的文本[重复]

    这个问题在这里已经有答案了 我意识到这个问题对于大多数正则表达式大师来说可能看起来非常简单 但是回顾类似的问题并没有得出解决方案 我有一个电子邮件地址向量 称为email并希望在每个最后一个句点之后提取文本 举例来说 email lt c
  • 在 R 中从一条线偏移绘制一条平行线

    我有代表沿着一些街道行驶的线串 但我实际上想代表骑自行车者的旅程 它偏离线路 即他们在路边附近行驶 我正在努力思考如何去做 我制作了一段可重现的 R 代码来进行说明 Let s say I have a route along some s
  • 文件上传控件仅上传PDF

    我有一个像这样的文件控件 div class form group Html LabelFor m gt m File new class col md 2 control label div class col md 10 Html Te
  • 在数据帧中的几行上提取具有匹配模式的 id

    这是我正在处理的数据框的示例 id string 1 no 1 yes 1 yes 2 no 2 yes 3 yes 3 yes 3 no 我想提取id为此最后两行包含字符串 yes 对于列string 所以结果是 id string 1
  • 如何从数据框列表中提取某些列

    我有一个数据框列表 l 这些数据框本身就是二维矩阵 对于我的工作 我需要创建另一个列表 其中的数据帧是原始列表中数据帧的子集 例如 列表l1有两个数据帧D1和D2 分别有10和12个不同的数据列 现在我想创建一个新列表 l2 它也有两个数据
  • 使用 R 和 rvest 进行网页抓取

    我正在尝试rvest学习使用 R 进行网页抓取 我正在尝试为页面的其他几个部分复制乐高示例并使用selector gadget to id 我从中提取了示例R Studio 教程 http blog rstudio org 2014 11
  • dplyr:在 group_by 组中添加行

    有没有更好的方法来添加行group by 组比使用bind rows 这是一个有点笨拙的例子 df lt data frame a c 1 1 1 2 2 b 1 5 df gt group by a gt do bind rows dat
  • 如何在data.table中编写累积计算

    顺序累积计算 我需要进行时间序列计算 其中每行计算的值取决于上一行计算的结果 我希望能够利用data table 实际问题是水文模型 累积水平衡计算 在每个时间步长增加降雨量 并减去径流和蒸发作为当前水量的函数 该数据集包括不同的流域和场景
  • ggplot for 循环输出所有相同的图表

    我编写了一个 for 循环 它遍历数据帧的列并使用 ggplot 为每列生成一个图表 问题是输出的图表都是相同的 它们都是最后一列的图表 我使用的代码是 library gridExtra library ggplot2 test1 lt
  • 如何在R中制作渐变颜色填充时间序列图

    How to 填充区域 sp 线下方和上方渐变色 这个例子是在 Inkscape 中绘制的 但我需要垂直渐变 不是水平的 间隔从zero to positive 来自white to red 间隔从zero to negative 来自wh
  • 如何为每个分组元素选择随机的非连续日期?

    我目前正在尝试为每个分组列选择非连续日期 换句话说 我有以下数据框 我基本上想group by Site 然后为每个分组站点仅保留 3 个随机非连续日期 例如 如果 HP37P1B 的日期对应于 3 月 12 日 3 月 13 日 3 月
  • 在 R 闪亮应用程序中接受 HTTP 请求

    我制作了一个闪亮的应用程序 需要从另一台服务器获取其数据 即打开闪亮的应用程序时 另一台服务器向闪亮的应用程序发送请求以打开应用程序并向其提供所需的数据 为了模拟这一点 当我在 Firefox 中打开 R闪亮应用程序时 我可以将以下内容发送
  • 建议一种每分钟更新时间的方法

    我有一个完整的ajax应用程序 我正在使用下面的代码每分钟更新一次时间 但如果我保持浏览器打开超过 10 分钟 浏览器就会变得无响应 缓慢 建议更好的代码 function tick var d new Date var time padN
  • 连接标签文本和 tmap 图中点的线

    我正在使用形状文件绘制 tmap 绘图 并且我想在形状文件上绘制几个具有长纬度坐标的点 我的绘图工作得很好 但是地图上有太多点 这意味着不同点的标签文本是重叠的 并且一般来说不是特别清晰 here s what the plot curre
  • 将毫秒时间戳解析为 R 中的时间

    我以前曾问过这个问题 但我找不到确切的答案 如果我有一个代表自午夜以来的毫秒数的数字 例如 34200577 我如何将其转换为 R 时间 在午夜构造一个 基线时间 添加给定的毫秒一旦转换为秒并解释为时间 R gt as POSIXct as
  • data.table 逐行求和、平均值、最小值、最大值,如 dplyr?

    还有其他关于数据表上的行式运算符的帖子 他们要么是太简单 https stackoverflow com questions 7885147 efficient row wise operations on a data table或解决一
  • 使用 RSQLite 库时加载 MacPorts SQLite3

    我在 SQLite 一个计算乘积的聚合器 中有一个用户定义的函数 它在 R 之外工作得很好 但是我有时在 Mac 上 如果您想添加您的 SQLite3 则需要 MacPorts 版本的 SQLite3自己的功能 扩展 我可以选择 RSQLi
  • 按因素分层抽样

    我有一个 1000 行的数据集 其结构如下 device geslacht leeftijd type1 type2 1 mob 0 53 C 3 2 tab 1 64 G 7 3 pc 1 50 G 7 4 tab 0 75 C 3 5
  • 获取当前时间(以小时和分钟为单位)

    我正在尝试从系统收集信息 并且需要获取当前时间 以小时和分钟为单位 目前我有 date awk print 4 输出如下 16 18 54 怎样才能把秒数去掉呢 提供格式字符串 date H M Running man date将给出所有格

随机推荐