R函数检查另一个函数中的参数数?
是否有一个内置的R函数,或一种编写R函数的方法,可以检查另一个函数接受多少输入,并列出可选参数的名称 让我们调用所需的函数f,然后调用以下命令:R函数检查另一个函数中的参数数?,r,function,R,Function,是否有一个内置的R函数,或一种编写R函数的方法,可以检查另一个函数接受多少输入,并列出可选参数的名称 让我们调用所需的函数f,然后调用以下命令: f(dnorm) 应该输出 4 及 因为有4个参数与“dnorm”关联,还有3个可选参数:mean、sd、log 或者这是不可能的?任何洞察都将不胜感激 您可以尝试: length(formals(dnorm)) # [1] 4 names(Filter(function(x) !is.symbol(x) || nchar(as.character
f(dnorm)
应该输出
4
及
因为有4个参数与“dnorm”关联,还有3个可选参数:mean、sd、log
或者这是不可能的?任何洞察都将不胜感激 您可以尝试:
length(formals(dnorm))
# [1] 4
names(Filter(function(x) !is.symbol(x) || nchar(as.character(x)), formals(dnorm)))
# [1] "mean" "sd" "log"
技术上有两个功能,但可以完成任务。对于第二个问题,如果默认参数很复杂,您可能需要多做一些调整。Wow,这正是我想要的!我还要再等9分钟才能接受……:)@后凸,很高兴这有帮助。请记住我关于复杂默认参数的警告。例如,如果默认参数是具有多个值的向量,则会收到警告。要知道的关键是,非默认参数是零长度符号(因此,
nchar(as.character(x))
会为这些参数返回0)。@kyphos,另外,如果您要在某个地方嵌入此参数,您可能应该执行is.symbol(x)
避免默认参数实际为“”的可能性。谢谢,请记住这一点,现在我打算将其与“functional”包中的“Curry”函数一起使用,以自动生成一些函数。@kyphos,太好了。我希望功能性是base的一部分。
length(formals(dnorm))
# [1] 4
names(Filter(function(x) !is.symbol(x) || nchar(as.character(x)), formals(dnorm)))
# [1] "mean" "sd" "log"