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")))