我有一个数据帧,例如

GroupsA GroupsB 
G1      G2    
G1      G3     
G1      G4      
G1      G5      
G1      G6      
G2      G3    
G2      G4
G2      G5
G2      G6
G3      G4
G3      G5
G3      G6
G4      G5
G4      G6
G5      G6

我有3份 list ,如下所示:

list1<-c("G1","G3")
list2<-c("G2")
list3<-c("G4","G5","G6")

我想通过添加GroupA和B所来自的列表的名称来向数据帧中添加一个新列,例如

GroupsA GroupsB Lists
G1      G2      list1&list2
G1      G3      list1&list1
G1      G4      list1&list3
G1      G5      list1&list3
G1      G6      list1&list3
G2      G3      list2&list1
G2      G4      list2&list3
G2      G5      list2&list3
G2      G6      list2&list3
G3      G4      list1&list3
G3      G5      list1&list3
G3      G6      list1&list3
G4      G5      list3&list3
G4      G6      list3&list3
G5      G6      list3&list3

以下是df的dput格式(如果可以提供帮助):

structure(list(GroupsA = c("G1", "G1", "G1", "G1", "G1", "G2", 
"G2", "G2", "G2", "G3", "G3", "G3", "G4", "G4", "G5"), GroupsB = c("G2", 
"G3", "G4", "G5", "G6", "G3", "G4", "G5", "G6", "G4", "G5", "G6", 
"G5", "G6", "G6")), class = "data.frame", row.names = c(NA, -15L
))

推荐答案

tidyverse年中:

library(tidyverse)
lists <- stack(lst(list1, list2, list3))
bind_cols(df, 
          df %>% 
            map_dfc(~ lists$ind[match(.x, lists$values)]) %>% 
            unite(col = "Lists", sep = "&"))
   GroupsA GroupsB       Lists
1       G1      G2 list1&list2
2       G1      G3 list1&list1
3       G1      G4 list1&list3
4       G1      G5 list1&list3
5       G1      G6 list1&list3
6       G2      G3 list2&list1
7       G2      G4 list2&list3
8       G2      G5 list2&list3
9       G2      G6 list2&list3
10      G3      G4 list1&list3
11      G3      G5 list1&list3
12      G3      G6 list1&list3
13      G4      G5 list3&list3
14      G4      G6 list3&list3
15      G5      G6 list3&list3

R相关问答推荐

如何在ggplot 2线性图的每个方面显示每个组的误差条?

计算R中的威布尔分布的EDF

自动变更列表

如何在一次运行中使用count进行多列计数

如何在R forestplot中为多条垂直线分配唯一的 colored颜色 ?

根据现有列的名称和字符串的存在进行变异以创建多个新列

DEN扩展包中的RECT树形图出现异常行为

计算两列中满足特定条件连续行之间的平均值

R中1到n_1,2到n_2,…,n到n_n的所有组合都是列表中的向量?

从多个线性回归模型中提取系数

计算直线上点到参考点的总距离

使用ggplot2中的sec_axis()调整次轴

判断函数未加载R中的库

我需要使用ggplot2制作堆叠条形图

如何将字符类对象中的数据转换为R中的字符串

从字符串01JAN2021创建日期

As.Date()不适用于5月或10月日期

对数据帧中的大量组合执行Kruskal-Wallis测试

迭代通过数据帧创建直方图

看似重叠的剧情