R 比较两组内数据的发生率

R 比较两组内数据的发生率,r,grouping,repeat,find-occurrences,R,Grouping,Repeat,Find Occurrences,我有一个带有用户名和组的数据 User_Name Group MustafE A fischeta A LosperS1 A MustafE B fischeta B jose B MustafE c fischeta c 我想标记那些不是重复组的客户。。示例-“LosperS1”在A组中但不在B组中,与“jose”在B组中但不在C组中的方式相同,因此在新列中,它们将在B

我有一个带有用户名和组的数据

User_Name    Group
MustafE       A
fischeta      A
LosperS1      A
MustafE       B    
fischeta      B  
jose          B  
MustafE       c   
fischeta      c 
我想标记那些不是重复组的客户。。示例-“LosperS1”在A组中但不在B组中,与“jose”在B组中但不在C组中的方式相同,因此在新列中,它们将在B组中标记为否/在C组中标记为否


任何帮助都将不胜感激

下面是一种使用tidyverse获取输出的方法。获取“User_Name”列的不同元素,循环遍历这些元素映射,根据“User_Name”中循环元素的存在情况过滤数据集的行,粘贴与过滤的“Group”相比在“Group”列中找不到的元素,子集第一行切片并右键连接原始数据集。我们使用map_df将最终输出作为单个data.frame而不是data.frame列表


尝试df1%>%distinctUser\u Name%>%pullUser\u Name%>%map\u df~df1%>%filterUser\u Name=.x%>%mutateFlag=toString SetDiffUniquedF1$Group,uniqueGroup%>%slice1%>%select Group%>%right\u joindf1,User\u Name Wesome。。。。正是我想要的。。非常感谢你
library(tidyverse)
df1 %>% 
   distinct(User_Name) %>% 
   pull(User_Name) %>% 
   map_df(~ df1 %>%
              filter(User_Name == .x) %>%
              mutate(Flag = toString(setdiff(unique(df1$Group), 
                                             unique(Group)))) %>% 
              slice(1) %>%
              select(-Group)) %>% 
              right_join(df1, "User_Name")