如何过滤组内并从另一个(参考)观察`data.frame` [复制]

问题描述 投票:0回答:1

这个问题已经在这里有一个答案:

我期待基于由组,它是基于一个单独的表一定值我的数据中筛选出的意见。我也在努力,而我已经与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内的参考方法以不同的方式。

r dplyr
1个回答
0
投票

怎么样:

dat %>% mutate(accountip = paste0(account, ip)) %>% filter(!(accountip %in% paste0(exclude$account,exclude$ip))) %>% select(account, ip, value)

© www.soinside.com 2019 - 2024. All rights reserved.