0
我有两个来自同一网站的两个独立分析来源的数据框。我希望将第一个(df1)中的事件与第二个(df2)中的事件的时间签名进行匹配。 df1中的大多数事件都不会在df2中发生相应的事件。在单独的对象中大致匹配时间值
因此,如果在距离df2 30秒内有时间匹配,我希望能够过滤df1中的事件。
df1 <- read.csv(text = "start_time, visit_duration
2017-08-13 12:13:53,22
2017-08-13 15:41:44,10
2017-08-13 16:03:45,11
2017-08-13 16:39:03,05")
df1$start_time = strptime(df1$start_time, "%Y-%m-%d %H:%M:%S")
df2 <- read.csv(text = "timestamp
2017-08-13 12:11:53
2017-08-13 15:44:50
2017-08-13 16:03:59
2017-08-13 16:39:30")
df2$timestamp = strptime(df2$timestamp, "%Y-%m-%d %H:%M:%S")
第3和第4项活动应该有2场比赛。
这个工程,并返回行号的列表。 为了别人的利益,我设法返回匹配行号的事件: df3 < - df1 [which(abs(outer(df1 $ start_time,df2 $ timestamp,'difftime'))<= 30, arr.ind = T)[,1],] – nycrefugee