我有两个这样的数据框架。
A:
A1 A2
1: a e
2: b f
3: c g
4: d h
B:
B1 B2
1: a 1
2: b,i,j,k 2
3: a,q 3,4
4: e 4,5
5: c,d,f 6
一旦A1属于B1,我想创建一个新的列A3使用这样的信息B2
A3
1 1,3,4
2 2
3 6
4 6
答案 0 :(得分:1)
您可以使用A$A1
使用sapply
循环grep
,并使用匹配来提取B1
的行索引,并将其用于子集{{1} }:
B2
或以data.table表示法,
A$A3 <- sapply(A$A1, function(x){paste(B$B2[grep(x, B$B1)], collapse = ',')})
A
## A1 A2 A3
## 1: a e 1,3,4
## 2: b f 2
## 3: c g 6
## 4: d h 6