R————do.call()

aa 		<- 	data.frame(matrix(1:25, ncol = 5), matrix(4:28, ncol = 5), matrix(21:45, ncol=5))
aa_sum 	<- 	do.call(sum,aa) 
aa_bind <-	do.call(cbind,aa)  


bb 		<- 	list(matrix(1:25, ncol = 5), matrix(4:28, ncol = 5), matrix(21:45, ncol=5))
bb_sum 	<- 	do.call(sum,bb) 
bb_bind <-	do.call(cbind,bb)  



list和data.frame都是可以的
do.call() 是告诉list一个函数,然后list里的所有元素来执行这个函数。

例子

x <- list()
x[[1]] <- letters[seq(2,20,by=2)] #是第2 4 6...20个字母
names(x[[1]]) <- LETTERS[c(1:length(x[[1]]))] #每一个都给他们命名为大写字母ABCD...
x[[2]] <- letters[seq(3,20, by=3)]
names(x[[2]]) <- LETTERS[seq(3,20, by=3)]
x[[3]] <- letters[seq(4,20, by=4)]
names(x[[3]]) <- LETTERS[seq(4,20, by=4)]

结果展示:

在这里插入图片描述
在这里插入图片描述
可以看出list每一个元素的包含的数量都不同

如果直接用rbind

在这里插入图片描述
会是对于2 3 这两个不齐的,通过重复来补齐。然而也可以看出,它们并没有匹配列名称,例如2中的C本来是c,现在却不是

rbind.fill 可以很好的进行格式匹配

在这里插入图片描述
这样可以很好地匹配列名称,并用NA填充空白

发布了65 篇原创文章 · 获赞 4 · 访问量 2373

猜你喜欢

转载自blog.csdn.net/babychrislee3/article/details/103836408