将参数传递给从 R 中的字符串调用的用户定义函数的最佳方法是啥?
Posted
技术标签:
【中文标题】将参数传递给从 R 中的字符串调用的用户定义函数的最佳方法是啥?【英文标题】:What is the best way to pass arguments to user defined function called from a string in R?将参数传递给从 R 中的字符串调用的用户定义函数的最佳方法是什么? 【发布时间】:2020-03-18 05:59:17 【问题描述】:我觉得这真的很简单,我只是缺少一个简单的功能。我的环境中有用户定义的函数。 Open
、Weak
、Strong
等
我的代码中有一个变量,它根据条件选择这些函数之一来运行。
Fun_Sel<-case_when(TP < 6 ~ "Pass",
6 <= TP & TP <= 11 ~ "Weak",
12 <= TP & TP <= 12 ~ "Rule22",
13 <= TP & TP <= 21 ~ "Open",
TP >= 22 ~ "Strong")
当我在Fun_Sel
上使用内置的get
函数时,我得到了
get(Fun_Sel)
function(df)
if( 15 <= as.numeric(df[2]) & as.numeric(df[2]) <= 17 & df[4] == "Bal")....
使用eval(parse(text=Fun_Sel))
给我同样的问题
如何传递参数并运行函数,而不是在函数本身的控制台中打印出来?
【问题讨论】:
试试get(Fun_Sel)()
【参考方案1】:
我同意,使用 get() 获取 Fun_Sel 只会返回函数对象本身。这就是它正在打印在控制台上。事实上,您将 () 放在激活它并进行函数调用的函数之后。您可以在 () 中包含所需的参数。
get(Fun_Sel)(par1, par2, etc)
【讨论】:
非常感谢。我知道这很简单以上是关于将参数传递给从 R 中的字符串调用的用户定义函数的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
我试图将一个非可变整数参数从一个函数传递给其他定义的函数;我的错误是啥?