do.call()用于将list里面的每一个元素执行可变长参数函数。
首先可变长参数函数是指,函数参数的长度是可变的,一般参数名是...
。例如,sum(), paste(), rbind()等
do.call()的用法:do.call(what, args)
- what为需要被调用的函数
- args为一个list,每个元素都是what的参数
例如,要对list中的所有元素进行求和
x <- list(a = c(1, 2),b = c(3, 4),c = c(5, 6))
sum(x[[1]], x[[2]], x[[3]])
然而,x经常是在程序运行过程中动态生成的,长度是不固定的,这个时候就要用到do.call了:
do.call(sum, x)
例2:我经常对于lapply输出的list使用do.call()
lapply(list,FUN) %>%
do.call(what = 'rbind')