Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中使用索引列表合并两个data.frame?_R - Fatal编程技术网

如何在R中使用索引列表合并两个data.frame?

如何在R中使用索引列表合并两个data.frame?,r,R,假设我们有两个数据帧:A: COl1 COL2 1,2... Hello 3 World 其中COL1中的每个元素都是一个数字向量。 B: 有没有一种简单的方法可以让他们变成这样: WAHHH COL2 Danny Hello Bob Hello Nice World 非常感谢您我们可以将“A”数据集中的“COl1”拆分,转换为数值,获取序列,使用“COL2”设置列表元素的名称,将堆栈转换为2列data.frame,并使用第二个数据集进行cbind cbind(B,

假设我们有两个数据帧:A:

COl1    COL2
1,2...  Hello
3       World
其中COL1中的每个元素都是一个数字向量。 B:

有没有一种简单的方法可以让他们变成这样:

WAHHH COL2
Danny Hello
Bob   Hello
Nice  World

非常感谢您

我们可以将“A”数据集中的“COl1”拆分,转换为数值,获取序列,使用“COL2”设置列表元素的名称,将堆栈转换为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'存储为列表

或者使用长度为的rep


注意:如果“COl1”是因子类,请使用strsplitas.characterA$COl1,:l

我的一般建议是不要像现在这样存储非标准化指数1:2。这将使今后所有的数据处理变得更加困难。很抱歉。它的存储方式是一个列表。我的描述有一个错误。很抱歉。它的存储方式是一个列表。
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
cbind(B, setNames(stack(setNames(A$COl1, A$COL2))[2], "COL2"))
#  WAHHH  COL2
#1 Danny Hello
#2   Bob Hello
#3  Nice World
data.frame(B, COL2=rep(A$COL2, lengths(A$COl1)))
#  WAHHH  COL2
#1 Danny Hello
#2   Bob Hello
#3  Nice World