R函数检查另一个函数中的参数个数?

kyp*_*hos 2 r function

是否有内置的R函数或编写R函数的方法,可以检查另一个函数的输入数量,还列出了可选参数的名称.

让我们调用这个所需的函数f,然后执行以下命令:

f(dnorm)
Run Code Online (Sandbox Code Playgroud)

应该输出

4
Run Code Online (Sandbox Code Playgroud)

和

mean, sd, log
Run Code Online (Sandbox Code Playgroud)

由于有4个参数与'dnorm'和3个可选参数相关联:mean,sd,log.

或者这可能不可能?任何见解都表示赞赏!

Bro*_*ieG 5

你可以试试:

length(formals(dnorm))
# [1] 4
names(Filter(function(x) !is.symbol(x) || nchar(as.character(x)), formals(dnorm)))
# [1] "mean" "sd"   "log" 
Run Code Online (Sandbox Code Playgroud)

技术上有两个功能,但完成工作.对于第二个,如果默认参数很复杂,您可能需要稍微玩一下.

  • @kyphos,很高兴这有帮助.请记住我对复杂默认参数的警告.例如,如果默认参数是具有多个值的向量,则会收到警告.要知道的关键是非默认参数是零长度符号(因此`nchar(as.character(x))`为那些返回0). (2认同)