回复 第8楼 的 mingjc320:恭喜你成功打怪升级!所有这些努力在未来你都会发现是值得的。
另外,有几点可能值得注意的地方:
1. function(x) get(x)
其实等同于 get(x)
;
2. do.call
的第一个参数可以用字符串,也可以直接用函数名;
3. lapply(X, FUN, ...)
函数除了前两个参数外,后面还可以在加上更多参数,使其传给FUN
.
所以你的代码也可以直接写成:
<br />
do.call(cbind, lapply(y, get))<br />
</p>
关于第三点的使用场景,你可以看?get
,其可以用pos或envir指定获取的对象来自哪个环境,试试如下代码(重点看看最后两行代码的结果有什么区别):
<br />
a <- 1:3<br />
b <- 3:9<br />
c <- letters[12:15]<br />
y <- letters[1:3]<br />
do.call(cbind, lapply(y, get))<br />
do.call(cbind, lapply(y, get, pos = 1))<br />
</p>