R:指定一个字符串作为调用另一个函数的函数的参数
这是一个关于 R 编码的问题。
我提供的示例是教学性的。假设我有名为“func1”和“func2”的函数,其中每个函数都有两个参数(假设是标量)。我想指定另一个具有三个参数的函数“applyfunction”:要使用的函数的最后一个数字(“1”或“2”)以及该函数的两个参数。例如,我想做这样的事情(这当然不起作用):
applyfunction(1,2,3)
它将有效地运行 func1(2,3)< /code> 和
applyfunction(2,9,43)
,它将有效运行 func2(9,43)
。
有什么想法吗?
最好的,数据库
This is a question regarding coding in R.
The example I provide is didactic. Suppose I have functions called 'func1' and 'func2', where each takes two arguments (let's say scalars). I want to specify another function 'applyfunction' that has three args: the last number of the function to use ('1' or '2'), and the two arguments for the function. For example, I want to do something like this (which of course doesn't work):
applyfunction(1,2,3)
where it would effectively run func1(2,3)
and
applyfunction(2,9,43)
where it would effectively run func2(9,43)
.
Any ideas?
Best, DB
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可能想看看
do.call()
,它使用列表中提供的参数调用函数。围绕这个编写一个完全符合您想要的功能的包装器并不难。编辑:包装器将是:
You might want to look at
do.call()
, which calls a function with arguments supplied in a list. It is not to hard to write a wrapper around this that does exactly what you want.EDIT: A wrapper would be:
这是另一种选择。您可以将更多功能添加到
switch
列表中。Here's another alternative. You can add more functions to the
switch
list.如果您确实希望“通过数字”完成:
使用 get 和 Paste 来获取与名称关联的函数。
If you really want it done 'by the numbers':
Uses get and paste to get the function associated with a name.
使用函数变量之一作为开关怎么样?
并且,您可以使用相同的函数,开关是变量“x”:
What about using one of the functions variables as a switch?
And, you get to use the same function, with the switch being the variable "x":
这是切换或粘贴的替代方法,只需使用索引从列表中选择:
Here an alternate to switch or paste, just use indexing to select from a list: