在R中,查找给定特定列的相邻行

在R中,查找给定特定列的相邻行,r,dplyr,R,Dplyr,我有一个数据框架,其中列出了客户和类别、产品以及开展外展的部门: Client | Category | Product | Department Mike S. | Home Goods | Carpet | Sales Mike S. | Outdoor | Shovel | Sales Mike S. | Outdoor | Garden Hose | Marketing Bill T. |

我有一个数据框架,其中列出了客户和类别、产品以及开展外展的部门:

Client    |  Category   |  Product      |  Department
Mike S.   |  Home Goods |  Carpet       |  Sales
Mike S.   |  Outdoor    |  Shovel       |  Sales
Mike S.   |  Outdoor    |  Garden Hose  |  Marketing
Bill T.   |  Outdoor    |  Garden Hose  |  Marketing
Bill T.   |  Outdoor    |  Garden Hose  |  Sales
Bill T.   |  Outdoor    |  Leaf Blower  |  Sales
Bill T.   |  Home Goods |  Recliner     |  Marketing
我想提供一个营销电子邮件列表,其中销售人员在类别级别(不是产品)进行了推广,但营销人员没有

以下是所需的输出:

Client    |  Category   |  Product      |  Department          
Mike S.   |  Home Goods |  Carpet       |  Sales                   
Bill T.   |  Outdoor    |  Leaf Blower  |  Sales     

这里有一种方法,可以在每个客户类别组中添加营销和销售外展人员的数量,然后筛选销售人员联系但营销人员没有联系的外展人员

library(dplyr)
my_data %>%
  group_by(Client, Category) %>%
  mutate(Sales = sum(Department == "Sales"),
         Mktg  = sum(Department == "Marketing")) %>%
  ungroup() %>%
  filter(Sales >= 1, Mktg == 0)
结果

# A tibble: 1 x 6
  Client  Category   Product Department Sales  Mktg
  <chr>   <chr>      <chr>   <chr>      <int> <int>
1 Mike S. Home Goods Carpet  Sales          1     0

这里有一种方法,可以在每个客户类别组中添加营销和销售外展人员的数量,然后筛选销售人员联系但营销人员没有联系的外展人员

library(dplyr)
my_data %>%
  group_by(Client, Category) %>%
  mutate(Sales = sum(Department == "Sales"),
         Mktg  = sum(Department == "Marketing")) %>%
  ungroup() %>%
  filter(Sales >= 1, Mktg == 0)
结果

# A tibble: 1 x 6
  Client  Category   Product Department Sales  Mktg
  <chr>   <chr>      <chr>   <chr>      <int> <int>
1 Mike S. Home Goods Carpet  Sales          1     0

另一个选项是在分组过滤器内使用
all
<代码>所有(部门!=“营销”)将完成以下工作:

库(dplyr)
我的_数据%>%
分组依据(客户、类别)%>%
过滤器(全部(部门)=“营销”))
#>#A tibble:1 x 4
#>#群体:客户,类别[1]
#>客户类别产品部
#>                    
#>1迈克·S·家居用品地毯销售
#使用的数据

#my_data另一个选项是在分组过滤器内使用
all
<代码>所有(部门!=“营销”)
将完成以下工作:

库(dplyr)
我的_数据%>%
分组依据(客户、类别)%>%
过滤器(全部(部门)=“营销”))
#>#A tibble:1 x 4
#>#群体:客户,类别[1]
#>客户类别产品部
#>                    
#>1迈克·S·家居用品地毯销售
#使用的数据
#我的数据