【发布时间】:2020-01-25 09:52:49
【问题描述】:
我有一个数据框df1,它总结了不同的信息(即Depth)加班(DateTime)。举个例子:
df1 <- data.frame(DateTime=c("2017-08-12 10:18:21.937","2017-08-12 11:43:56.937","2017-08-12 12:22:16.937","2017-08-12 13:24:43.937","2017-08-12 14:35:14.937","2017-08-12 15:48:28.937"),
Depth=c(24,12,35,54,13,32))
df1$DateTime <- as.POSIXct(df1$DateTime, format="%Y-%m-%d %H:%M:%OS", tz="UTC")
df1
df1
DateTime Depth
1 2017-08-12 10:18:21.937 24
2 2017-08-12 11:43:56.937 12
3 2017-08-12 12:22:16.937 35
4 2017-08-12 13:24:43.937 54
5 2017-08-12 14:35:14.937 13
6 2017-08-12 15:48:28.937 32
在其他数据框df2 中,我过滤了df1,并为剩余的行计算了一个新的DateTime(称为DateTime2),在df2(DateTime 和@987654331)中获得了两个不同的时间@)。这是我会得到的一个例子:
df2 <- data.frame(DateTime=c("2017-08-12 11:43:56.937","2017-08-12 14:35:14.937"),
DateTime2=c("2017-08-12 11:41:48.337","2017-08-12 14:33:23.476"),
Depth=c(12,13))
df2$DateTime <- as.POSIXct(df2$DateTime, format="%Y-%m-%d %H:%M:%OS", tz="UTC")
df2$DateTime2 <- as.POSIXct(df2$DateTime2, format="%Y-%m-%d %H:%M:%OS", tz="UTC")
df2
DateTime DateTime2 Depth
1 2017-08-12 11:43:56.937 2017-08-12 11:41:48.336 12
2 2017-08-12 14:35:14.937 2017-08-12 14:33:23.476 13
我想要的是更改df1 中df1$DateTime 和df2$DateTime 重合的行的DateTime,并更改df1$DateTime 的值df2$DateTime2。我还想为 df1$DateTime 和 df2$DateTime 不重合的其余行减去 60 秒。我希望这样:
df1
DateTime Depth
1 2017-08-12 10:17:21.937 24
2 2017-08-12 11:41:48.336 12
3 2017-08-12 12:21:16.937 35
4 2017-08-12 13:23:43.937 54
5 2017-08-12 14:33:23.476 13
6 2017-08-12 15:47:28.937 32
有人知道怎么做吗?
谢谢!!
【问题讨论】:
标签: r dplyr data.table