Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
loop over two按同名多个数据帧的行名列出merge()函数_R_List_Dataframe_Merge_Lapply - Fatal编程技术网

loop over two按同名多个数据帧的行名列出merge()函数

loop over two按同名多个数据帧的行名列出merge()函数,r,list,dataframe,merge,lapply,R,List,Dataframe,Merge,Lapply,我有两个数据帧列表mylist\u a和mylist\u b。两个列表中的数据帧名称相同。 我需要按行名(by=0)合并mylist\u a和mylist\u b的所有数据帧,以获取mylist\u c 下面是数据帧的示例 head(mylist_a$aa) D1 D2 D3 a 52 41 55 b 103 111 1

我有两个数据帧列表
mylist\u a
mylist\u b
。两个列表中的数据帧名称相同。 我需要按行名
(by=0)
合并
mylist\u a
mylist\u b
的所有数据帧,以获取
mylist\u c

下面是数据帧的示例

head(mylist_a$aa)
                              D1  D2  D3
a                             52  41  55
b                            103 111 104
c                             15  12  16
d                              3   2   0
e                              1   1   0
f                              0   0   2

head(mylist_b$aa)
                                      D1           D2        D3
a                             0.68659264 1.0000000000 1.0000000
b                             0.02358574 0.0007992743 0.3253237
c                             1.00000000 1.0000000000 1.0000000
d                             1.00000000 1.0000000000 1.0000000
e                             1.00000000 1.0000000000 1.0000000
f                             1.00000000 1.0000000000 1.0000000
当我使用简单的函数
merge(mylist_a$aa,mylist_b$aa,by=0)
时,它工作得非常好,这就是我得到的:

Row.names   D1.x    D2.x    D3.x    D1.y    D2.y    D3.y
a           52  41  55  0.68659264  1.0000000000    1.0000000
b           103 111 104 0.02358574  0.0007992743    0.3253237
c           15  12  16  1.00000000  1.0000000000    1.0000000
d           3   2   0   1.00000000  1.0000000000    1.0000000
e           1   1   0   1.00000000  1.0000000000    1.0000000
f           0   0   2   1.00000000  1.0000000000    1.0000000 
我现在的问题是如何使用合并的数据帧对列表进行
lappy


有人能帮忙吗

我们可以使用
Map
进行此操作

Map(merge, mylist_a, mylist_b, MoreArgs = list(by = 0))
数据
mylist\u a您显示的输出与显示的输入数据不匹配
mylist_a <- list(aa = structure(list(D1 = c(52L, 103L, 15L, 3L, 1L, 0L), 
    D2 = c(41L, 111L, 12L, 2L, 1L, 0L), D3 = c(55L, 104L, 16L, 
    0L, 0L, 2L)), class = "data.frame", row.names = c("a", "b", 
"c", "d", "e", "f")))

mylist_b <- list(aa = structure(list(D1 = c(0.68659264, 0.02358574, 1, 1, 
1, 1), D2 = c(1, 0.0007992743, 1, 1, 1, 1), D3 = c(1, 0.3253237, 
1, 1, 1, 1)), class = "data.frame", row.names = c("a", "b", "c", 
"d", "e", "f")))