Почему функция формальностей возвращает NULL для функций, определенных с аргументами? - PullRequest
0 голосов
/ 12 мая 2019

Из базы R , формалы функция должна предоставлять доступ и разрешать манипуляции с Формальными Аргументами. Итак, почему он возвращает 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)

$all.names
[1] FALSE

$pattern


$sorted
[1] TRUE


> sum
function (..., na.rm = FALSE)  .Primitive("sum")
> formals(sum)
NULL

Я ожидаю, что формалы (сумма) предоставят результат списка из двух длин, а не NULL

1 Ответ

2 голосов
/ 12 мая 2019

Проблема с вашим выбором функции очевидна из его тела.Примитивные функции несколько отличаются тем, что их список аргументов может иметь несколько имен, но их аргументы передаются в код C, а formals(), body() и environment() все возвращают NULL.Попробуйте вместо этого apply.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...