为什么formals函数在用参数定义的函数上返回NULL?
从baseR,formals函数应该授予访问权限并允许对形式参数进行操作。 那么,为什么在一些使用经典参数定义的函数上返回NULL为什么formals函数在用参数定义的函数上返回NULL?,r,R,从baseR,formals函数应该授予访问权限并允许对形式参数进行操作。 那么,为什么在一些使用经典参数定义的函数上返回NULL > ls function (name, pos = -1L, envir = as.environment(pos), all.names = FALSE, pattern, sorted = TRUE) { ... > formals(ls) $name $pos -1L $envir as.environment(pos) $
> ls
function (name, pos = -1L, envir = as.environment(pos), all.names = FALSE,
pattern, sorted = TRUE)
{ ...
> formals(ls)
$name
$pos
-1L
$envir
as.environment(pos)
$all.names
[1] FALSE
$pattern
$sorted
[1] TRUE
> sum
function (..., na.rm = FALSE) .Primitive("sum")
> formals(sum)
NULL
我希望formals(sum)提供一个长度为2的列表结果,而不是NULL。函数选择的问题从它的主体上看是显而易见的。基本函数有些不同,因为它们的参数列表可能有一些名称,但它们的参数被传递给C代码和
formals()
,body()
,以及environment()
都返回NULL
。用apply
试试它。你选择函数的问题从函数体上看是显而易见的。基本函数有些不同,因为它们的参数列表可能有一些名称,但它们的参数被传递给C代码和formals()
,body()
,以及environment()
都返回NULL
。请改为使用apply
。From:“只有_闭包u具有形式函数,而不是基元函数…对于非函数或基元返回…NULL”。许多低级函数(包括您在此控制台输出上显示的sum
)都是。Primitive
函数,而formals
将无法检查。From:“只有_闭包u.具有formals,而非Primitive函数……对于非函数或Primitive函数返回…NULL”。许多低级函数(包括您在此控制台输出上显示的sum
)都是。基本的函数,而形式的将无法检查。