Как создать «пустой объект» в R?[править: я не знаю, как правильно назвать эту «вещь», поэтому я называю ее «пустой объект», другие: «пустой символ», «символ нулевой длины», «отсутствующий объект» также могут быть использованы]
[edit2: в конце концов я склоняюсь к «отсутствующему объекту символа» для имени «вещи».Также кажется, что J.Chambers использует эту терминологию в своей книге 2008 года, см. Комментарии к ответу @ mbq.По словам Чамберса, «отсутствующий символ» содержит строку нулевой длины в качестве содержимого.Таким образом, as.symbol ("") должен создать такой объект, чего нет в текущей версии R (2.11.1)]
Самый простой способ, который я смог найти, это
x <- alist(a=)$a
[Уточнение]
Обратите внимание, что «пустой объект» не является NULL-объектом или вектором длины 0. «Пустой объект» x в моем приведенном выше примере может использоваться в манипулировании формальными функциями,для чего мне это нужно.
Вот пример:
> al <- alist(a = 323, b = , c = 434)
> al
$a
[1] 323
$b
$c
[1] 434
>
> al[["c"]] <- numeric()
> al
$a
[1] 323
$b
$c #not empty
numeric(0)
>
> al[["c"]] <- list()
> al
$a
[1] 323
$b
$c #not empty
list()
>
>
> al[["c"]] <- NULL #object removed
> al
$a
[1] 323
$b
>
> al[["c"]] <- alist(a = )$a
> al
$a
[1] 323
$b
$c #empty
Итак, я просто ищу способ создания пустых объектов для использования в формальных манипуляциях функции.Я почти уверен, что в базе R. должен быть путь.
Вот пример:
> foo <- function(a = 3232, b = 234){b+a}
> formals(foo)
$a
[1] 3232
$b
[1] 234
> formals(foo)$c <- alist(a = )$a
> formals(foo)
$a
[1] 3232
$b
[1] 234
$c
> foo <- function(a = 3232, b = 234){b+a}
> formals(foo)
$a
[1] 3232
$b
[1] 234
> formals(foo)$c <- alist(a = )$a
> formals(foo)
$a
[1] 3232
$b
[1] 234
$c
Спасибо.