【发布时间】:2018-05-29 17:17:22
【问题描述】:
我有一个包含 3 列的数据框。 (https://pastebin.com/DFqUuuDp)
前两列 ("Time1","Time2") 包含日期时间数据,并且都具有 posixct 格式:"%Y-%m-%d %H:%M:%S"。
所以我最终需要的是行的子选择,其中对于 Time1 中的特定时间,仅选择 Time2 中的行
- 是 Time1 的前一天(这里的一天并不总是 24 小时;一天是指日历前一天。基本上是“昨天”)
- 并且时间 2 是
一个正确的例子:
+---------------------+----------------------+
| Time1 | Time2 |
+---------------------+----------------------+
| 2016-11-01 00:00:00 | 2016-10-31 00:00:00 |
+---------------------+----------------------+
一个错误的例子:
+---------------------+----------------------+
| Time1 | Time2 |
+---------------------+----------------------+
| 2016-11-01 00:00:00 | 2016-10-31 12:00:00 |
+---------------------+----------------------+
在上传的文件中,我手动添加了第三列(“值”)作为我想要在最后过滤的行的指导。带有“True”的行让我很感兴趣。
我用两个 for 循环解决了这个问题,但是通过大表非常慢。
【问题讨论】:
-
首先,来自 pastebin 的代码给出了一个错误“错误:“-3000L”中的意外'% filter(time2-time1
-
对不起,我重新上传了文件。之前是一个data.table。现在我上传了一个data.frame。 ---- 我不知道如何制定(time2-time1
-
@UDE_Student 你的数据很大。你为什么不分享
dput(head(df,20))?对每个人来说都会更容易。 -
是的,你是对的,我用较短的版本更新了我的初始帖子:pastebin.com/DFqUuuDp
-
我使用
lubridate在base-R 中添加了一个可能的解决方案。看看,
标签: r data.table