将合并应用于data.frames列表
我有一个data.frames列表,其中只有一列和一个将合并应用于data.frames列表,r,merge,R,Merge,我有一个data.frames列表,其中只有一列和一个字符值: > list.df[c(1,5,8)] $1 X..1L.. 1 A 2 B 3 C 4 D 5 E 6 F 7 G 8 H $5 X..5L.. 1 A 2 C 3 D 4 F 5 G $8 X..8L.. 1 A 2 D 3 F 4 G 5 H 6 I 还有另一个
字符
值:
> list.df[c(1,5,8)]
$1
X..1L..
1 A
2 B
3 C
4 D
5 E
6 F
7 G
8 H
$5
X..5L..
1 A
2 C
3 D
4 F
5 G
$8
X..8L..
1 A
2 D
3 F
4 G
5 H
6 I
还有另一个data.frame
> df
V2 V5 V9
1 A 31 0.13029
2 B 80 0.29443
3 C 166 0.01354
4 D 11 0.39589
5 E 62 0.61794
6 F 40 0.35808
7 G 31 0.62581
8 H 54 0.24983
9 I 19 0.47199
10 J 97 0.26518
我想将列表中的每个data.frame与df
合并,我已尝试创建一个函数
func您有两个错误。一个在函数中,另一个在函数调用方式中:
func <- function(x,y){merge(x, y, by.x=names(x)[1], by.y=names(y)[1])}
lapply(list.df, func, df)
func不太确定这是否有帮助,但要合并列表,请尝试
df.list <- do.call(merge,list.df[c(1,5,8)])
as.data.frame(x)中的df.list错误:缺少参数“x”,当我在@eddi再次添加df.list Hi时,当列表有9000个元素且data.frame维度为17000行乘1000列时,是否有任何方法可以加快函数fun
?许多感谢使用data.table
s而不是data.frame
s-在SO或google上快速搜索一下,你就可以开始使用dt=data.table(df,key='V2')
,然后使用fn=function(x){df[x]};lappy(list.df,func)
可能是一个很好的起点
df.list <- do.call(merge,list.df[c(1,5,8)])
colnames(df) <- c("col1","col2","col3")