r - 仅将一些参数作为 R 中的命名列表传递给函数
问题描述
给定一个函数
power <- function(x,a,b) b*x^a
我知道power(c(1:10),2,1.5)
,我可以do.call
使用命名列表调用它,而不是使用 调用它
parms=list(x=c(1:10),a=2,b=1.5)
do.call("power",parms)
但是,假设我有不同的向量x
要使用 和 的相同值进行a
处理b
。除非我错过了某些东西,否则我似乎无法定义部分列表parms=list(a=2,b=1.5)
,然后重新使用具有不同值的此类列表x
,例如
power(c(1:10),parms)
或者
do.call("power",c(1:10),parms)
解决方案
如何将不改变的参数作为函数的默认参数。
power <- function(x,a = 2,b = 1.5) b*x^a
lapply(list(1:10, 11:20), power)
#[[1]]
# [1] 1.5 6.0 13.5 24.0 37.5 54.0 73.5 96.0 121.5 150.0
#[[2]]
# [1] 181.5 216.0 253.5 294.0 337.5 384.0 433.5 486.0 541.5 600.0
推荐阅读
- mysql - 如何在一个查询中删除和插入mysql
- javascript - 如何在 javascipt 中使用 mocha 断言验证文件下载
- javascript - SearchParam 编码和 URLencoding
- python - 为什么我的 python 类变量(例如 Post)不能在类中用于声明变量。- django
- c++ - 从 'void* (*)(int*)' 到 'void* (*)(void*)' 的无效转换
- html - 删除 html5 输入日期中的空格
- javascript - JS按两列日期对数组进行排序
- android - 如何在颤振中使用 Firebase 电话身份验证?
- javascript - 在我想放入 firestore 的函数中得到 500 的错误
- python - 请求操作之前和之后的烧瓶不起作用/打印任何东西