我希望根据组中的某些值(基于单独的表格)过滤掉数据中的观测值。我还尝试专门与dplyr
合作,而我已经通过data.table
执行了类似的任务,但我不确定如何完成它。
以下是一些示例数据来说明:
#Primary dataset
dat <- data.frame(account = c(1, 3, 3, 3, 5, 5, 7),
ip = c("255.255.255",
"255.255.255", "199.199.99", "255.255.255",
"75.75.75", "120.120.120",
"50.50.50"),
value = c(50, 1000, 800, 2500, 3000, 500, 75))
我想从数据集中基于每个帐户的IP列表进行过滤,这是另一个表:
#Filtering reference table
exclude <- data.frame(account = c(3, 5),
ip = c("255.255.255", "120.120.120"))
过滤后,dat
的期望输出为:
account ip value
1 1 255.255.255 50
2 3 199.199.99 800
3 5 75.75.75 3000
4 7 50.50.50 75
我特别不确定如何在group_by
上的%>%
动词的管道dplyr
动词系列(dat
)中的dplyr
中包括引用。考虑到我仍然熟悉dplyr
的编程风格,我可能也无法正确地完成任务,因此只要它在 val foo = new Object2IntOpenHashMap[String]
foo.put("foo", 1)
val bar = new Object2IntOpenHashMap[String]
bar.put("foo", 1)
bar.put("bar", 1)
之内,就可以采用与我考虑的参考方法不同的方式。
答案 0 :(得分:0)
怎么样:
dat %>%
mutate(accountip = paste0(account, ip)) %>%
filter(!(accountip %in% paste0(exclude$account,exclude$ip))) %>%
select(account, ip, value)