假设我们有两个数据框:A:
COl1 COL2
1,2... Hello
3 World
其中COL1中的每个元素都是数字向量。 和B:
WAHHH
Danny
Bob
Nice
有一种简单的方法可以让他们变成这样:
WAHHH COL2
Danny Hello
Bob Hello
Nice World
非常感谢
答案 0 :(得分:1)
我们可以在'A'数据集中拆分'COl1',转换为numeric
,获取序列,将list
元素的名称设置为'COL2',stack
为使用第二个数据集
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