如何在 lapply (R) 中显式定义附加参数

Posted

技术标签:

【中文标题】如何在 lapply (R) 中显式定义附加参数【英文标题】:How to explicitly define the additional arguments in lapply (R) 【发布时间】:2019-10-28 11:07:53 【问题描述】:

我有一个有两个参数的函数,如下:

MyFun = function(y, z)0.5*y + 10*z

我希望 z 固定为 10,并且 y 取以下 1:10 之一。 使用 lapply 我写道:

lapply(X = 1:10, FUN = MyFun,  z=10)

这可以完成工作,但似乎 R 理解 y 是 X,因为它是 MyFun 的缺失参数。我的问题是如何在附加参数中明确定义 y 。我想输入如下内容:

lapply(X = 1:10, FUN = MyFun, y=X, z=10)

这显然不起作用,因为 R 会在一般环境中寻找 X。隐式定义 y 的问题在于,当我有一个函数,比如说,10 个固定参数和一个参数取 X 的值时,(对于外部读者)断定哪个参数在 X 上运行会很复杂。如果函数包含...则更复杂...

【问题讨论】:

【参考方案1】:

您可以使用来自 base 的 Map() 执行此操作(类似于 lapply()

Map(MyFun, y=1:10, z=10)

或者mapply()也来自base,如果你想要一个向量作为回报(类似于sapply()

mapply(MyFun, y=1:10, z=10)
#  [1] 100.5 101.0 101.5 102.0 102.5 103.0 103.5 104.0 104.5 105.0

【讨论】:

以上是关于如何在 lapply (R) 中显式定义附加参数的主要内容,如果未能解决你的问题,请参考以下文章

在vs2013中,c++中set容器定义对象时,参数列表中显式调用greater无法被识别,啥原因?

父类 子类 构造方法

sequelize抛出错误方言需要在express js中显式定义

为什么在实例化模板时必须在参数包中显式显示类型?

id 主键是不是必须在从 inspectdb 针对现有数据库生成的 Django 模型中显式定义?

如何在 CoffeeScript 中显式返回对象