Как создать «пустой объект» в R? [edit: Я не знаю, как правильно называть эту «вещь», поэтому я называю ее «пустым объектом», другие: «пустой символ», «символ нулевой длины», «недостающий объект» также может использоваться]Создайте «недостающие объекты» (aka: «пустые символы», «пустые объекты»)/необходимо для обработки форматов/
[edit2: Наконец, я склоняюсь к «отсутствующему символьному объекту» для названия «вещь». Также представляется, что J.Chambers использует эту терминологию в своей книге 2008 года, см. Комментарии для ответа @ mbq. Согласно Chambers, «отсутствующий символ» имеет строку с нулевой длиной, как ее содержимое. Таким образом, 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
Спасибо.
Да, это он !!! Он создает эту неуловимую «вещь». – VitoshKa
'bquote' в настоящее время делает то же самое. Я лично не буду полагаться на это поведение, так как он недокументирован, и есть другие способы достижения такого же результата. –
@ Джошуа Ульрих - Яп! Хорошая точка зрения. – VitoshKa