问题标签 [difftime]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
204 浏览

r - 从一列中使用 R 中的 difftime

您好,您能帮我解决一列中 R 的(小时)差异。我只使用基本包 R。我想用小时创建新列,所以列看起来像

我有一个列(时间),我想创建新列(小时)

谢谢

0 投票
2 回答
415 浏览

r - 复位累计时间

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

我想创建一个累积增加时间(以天为单位)的列,但前提是land列中有“1”。我也希望在id更改时重置计数。

我尝试了各种使用data.table,rleid甚至嵌套for循环的方法,但均未成功。我使用这样的代码得到了错误:

我在这里尝试了解决方案的变体: 计算 R 中的累积时间

我不确定计算时间间隔的最佳方法(使用difftimeor没有成功lubridate)。

我希望最终结果如下所示:

0 投票
3 回答
1138 浏览

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

我目前正在运行一个 for 循环代码,并且在每个循环结束时,我正在测量循环的持续时间并打印一条消息,告诉用户循环花费了多长时间。

获得我正在使用的持续时间

这就是我打印声明的方式

问题是每个循环的持续时间可能从 30 秒到 1 小时不等。将持续时间放在粘贴中只会将其转换为没有单位的数字。

例如

我如何从 difftime() 中获取单位以获得类似:“Loop 5 运行了 10.5 分钟。”

PS:有些人可能会建议通过在 difftime() 中声明“单位”参数来标准化持续时间,但我希望用户可以轻松理解持续时间,这就是我将单位设置为默认“自动”的原因。

0 投票
1 回答
38 浏览

r - 如果时间跨度与小时重叠,则创建 24 列和一个虚拟列

我有一个“开始”和“结束”时间戳。

我想创建 24 个新列并在这些时间里添加。例如,如果第一行的 start=23:30 和 end=7:30 我想将它们放在第 23、00、01、...、07 列中。我如何捕获一个时期的所有“小时”十字架。

一个有 100 行的新数据集:

0 投票
1 回答
732 浏览

r - 使用 difftime + 减法运算符时出现错误“必须提供原点”在不同的分钟内不起作用

我有一个HH:MM:SS格式的两列“开始”和“结束”的数据框。

我想使用difftime函数计算开始和结束之间的持续时间

它总是返回此错误: as.POSIXct.numeric(time1) 中的错误:必须提供'origin'

我读了很多帖子,但似乎没有一个对我有用。

加载包

我删除了几个小时来处理分钟和秒

对象类别

我使用difftime函数计算了持续时间

我使用减法运算符,它工作正常,除了第 3 行分钟不同时,它给出了错误的答案。

修正案

接受的响应工作得很好,除了它返回一个错误: mtx1[3, ] 中的错误:每当应用于我在同一数据框中的第二个两列“start2”和“end2”时,维度数不正确。

来自我的 df 的样本

仅以分钟和秒为单位组织数据(删除小时)

0 投票
4 回答
338 浏览

r - 如何获得具有多个单位的输出的时差

再会,

我在 as.POSIXct 中有两个日期列,格式为 YYYY-MM-DD HH:MM:SS。我想了解两者之间的差异,以 Days Hours:Seconds 格式显示。这是一些虚拟数据:

这给出了这个数据框:

我想得到 a 和 b 之间的差异,或者从时间 b 中减去时间 a 以获得 X 天 X 小时:X 秒的输出。

我在下面使用了 difftime,以及设置不同的单位:

我还尝试了以下方法:

但是得到“单位”长度必须为 1 的错误。我应该使用不同的命令,还是 difftime 有什么方法可以产生更精确的时差?

谢谢!

0 投票
1 回答
104 浏览

r - R中的hms difftime类型问题

我有两个非常相似的数据框,我试图将它们绑定在一起,但遇到了问题。我使用 dput() 从每个数据帧中抓取 3 列(其中一个有问题)和 10 行。

当我执行rbind.fill时钟列时变成 NA:NA:NANA,这令人沮丧。当我检查clock每个数据框中列的类时,它们“看起来”是相同的:

...但是,dput()幸运的是,时钟向量中的值是 str1 的字符串和 str2 的数字。同样,我没有str从头开始创建这些演示数据框,它们来自我的完整数据框,因此这clock在数据框之间的列中显然是不同的。

如何修复其中任何一个以使列类型保持一致?提前致谢!!

0 投票
1 回答
12 浏览

r - 月差函数不一致

我有两个日期向量。我需要找出两者之间的月差。

在两个向量的一个子集中我没有问题。

但是,一旦我将整个向量计算包括在内,就不再有意义了。

例如,“2004-07-01”和“2004-09-30”之间的差异不再是 3,而是变成 258490。

我如何找到对这个问题负责的几个日期?

代码

查看(数据帧)

0 投票
1 回答
93 浏览

r - 如何在不使用多个循环的情况下计算同一组下的前一个有效数据行的天数差异?

我想计算每个响应与同一个人/姓名下的前一个有效行之间的天数差异。

一组简化数据如下:

这是我想要达到的结果:

从发送方收到的第一个响应始终有效。如果在同一发件人发送的上一个有效响应的 60 天内收到响应,则该响应被标识为无效,并随后被忽略。

从 Jane 收到的回复的时间差的计算很简单,因为总共只有 2 个回复。

然而,五月的计算是复杂的。由于响应 #3 的差异为 53 天(2018-05-01 至 2018-06-23),因此将被标记为无效。因此,为了计算响应#4 的时间差,将其与响应#2 而不是响应#3 进行比较,因为响应#2 是先前的有效数据。由于响应 #4 的时间差计算为 72 天(2018 年 5 月 1 日至 2018 年 7 月 12 日),因此也将其标记为有效响应。因此,为了计算响应 #6(2018-07-12 到 2018-08-17)的时间差,将其与响应 #4(即之前的有效数据)进行比较,依此类推。

我看过一些关于计算时间差的类似问题,但它们要么在相邻行之间,要么在组中的第一个观察值中。

这是我目前拥有的代码,它计算与从发件人收到的第一个响应的差异(这是不正确的方法),我不知道如何从这里继续。

有人可以就这个问题的解决方案给我建议吗?

太感谢了!

==================================================== ========================== 编辑于 10/05/2019

我使用 for 循环为每个组/人提出了一个解决方案,以 May 为例:

但是,我想避免使用嵌套循环。

如何以更有效的方式同时将其应用于每个组/人?

0 投票
0 回答
34 浏览

r - 如何像这样格式化 difftime() 值:Y:M:W:D:H:S

我目前使用该difftime()函数来获取两个Sys.time()对象之间的经过时间。

IE :

当前输出类似于:

5.188578 days

我想得到一个以这种方式显示经过时间的输出:

5 days : 4 hours : 30 mins : 15 secs

或类似的东西。

我已经尝试过该strptime()功能,但它似乎适用于日期,所以我不确定如何使用它。

我还查看了periods()似乎给出如下输出的 lubridate 函数:“3m 12d 0H 0M 0S”(这会很棒),但它似乎不适用于我的 elapsed_time 对象。

我还查看了 stackoverflow 和 google,但没有找到我想要的答案。

所以我想知道是否有人可以给我一些关于如何进行的线索。谢谢你。

编辑:我通过戴夫的评论和如何获得具有多个单位页面的输出的时差找到了一个不错的答案。

输出结果格式为: