根据多个条件和时间跨度匹配DF中的ID

时间:2018-01-30 19:12:35

标签: r matching lubridate

代表示例

ip <- c("127.0.0.1", "127.0.0.2", "127.0.0.1","127.0.0.4")
id <- c("a", "b", "c", "d")
time <- c("2017-11-29 00:06:00", "2017-11-29 00:07:00", "2017-11-29 00:12:00", "2017-11-29 00:16:00")
language <- c("eng", "fr", "fr", "fr")
OS <- c("win", "OSX", "debian", "OSX")
df <- data.frame(ip, id, time, language, OS)

通过查看条件1是否为真,如果不是,则进入条件2。

条件一

以上是df

我想匹配df $ id其他ID,如果ip ==在相同日期的6小时内相同,结果应该看起来像

 id1     id2
 a        c

结果可以在不同的数据框中完成。

条件二

如果上述情况不正确,请检查语言和操作系统是否匹配以及是否匹配

在代表示例中,因为ID“a”和“c”的IP在6小时内匹配,OS和语言“b”和“d”匹配,因此

两个条件为真的

结果将是

id1   id2
a     c
b     d

0 个答案:

没有答案