[英]How to merge two data.frame using index list in R?
可以说我们有两个数据帧:A:
COl1 COL2
1,2... Hello
3 World
其中COL1中的每个元素都是数字的向量。 和B:
WAHHH
Danny
Bob
Nice
有没有一种简单的方法可以使他们变成这样:
WAHHH COL2
Danny Hello
Bob Hello
Nice World
非常感谢
我们可以在'A'数据集中拆分'COl1',转换为numeric
,得到序列,用'COL2'设置list
元素的名称, stack
以转换为2列data.frame
并与第二个数据集cbind
cbind(B, setNames(stack(setNames(lapply(strsplit(A$COl1, ":"),
function(x) Reduce(`:`, as.numeric(x))), A$COL2))[2], "COL2"))
# WAHHH COL2
#1 Danny Hello
#2 Bob Hello
#3 Nice World
如果“ COl1”存储为list
cbind(B, setNames(stack(setNames(A$COl1, A$COL2))[2], "COL2"))
# WAHHH COL2
#1 Danny Hello
#2 Bob Hello
#3 Nice World
或使用rep
lengths
data.frame(B, COL2=rep(A$COL2, lengths(A$COl1)))
# WAHHH COL2
#1 Danny Hello
#2 Bob Hello
#3 Nice World
注意:如果'COl1'是factor
类,请使用strsplit(as.character(A$COl1), ":")
l
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.