gpt4 book ai didi

r - 创建 "missing objects"(又名 : "empty symbols" , "empty objects")/形式操作所需/

转载 作者:行者123 更新时间:2023-12-04 11:50:44 25 4
gpt4 key购买 nike

如何在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

谢谢。

最佳答案

试试 substitute() :

foo <- function(a = 3232, b = 234) {}
formals(foo)$c <- substitute()
foo
# function (a = 3232, b = 234, c)

关于r - 创建 "missing objects"(又名 : "empty symbols" , "empty objects")/形式操作所需/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com