R语言向量推导实现:无需修改代码优化函数调用方法
R语言中向量参数的传递优化写法
给定如下代码:
foo <- function(a,b,c){ print(c(a,b,c)) } x <- c(1,2,3)
在不修改上述代码的前提下,替代foo(x[1],x[2],x[3])的更优写法是使用do.call()函数:
do.call(foo, as.list(x))
说明
do.call()的核心作用是将一个对象(这里是转换后的列表)中的元素逐个作为单独参数传递给目标函数。as.list(x)仅做了一次轻量的向量转列表操作,相比手动索引每个元素,这种写法更简洁,尤其当向量长度增加时,不需要逐一修改索引位置。
内容的提问来源于stack exchange,提问作者温泽海
相关产品推荐
相关产品推荐

