物体是什么formals(function(x){})$x
?
它存在于函数的形式中,绑定到没有默认值的参数。
还有其他方法来引用这个奇怪的对象吗?除了表示空函数参数之外,它还有其他作用吗?
以下是可以在控制台中检查的一些属性:
> is(formals(function(x){})$x)
[1] "name" "language" "refObject"
> formals(function(x){})$x
> as.character(formals(function(x){})$x)
[1] ""
编辑:以下是获取此对象的其他一些方法:
alist(,)[[1]]
bquote()
quote(expr=)
背景:什么是formals(function(x) {})
?
好吧,首先(正如记录在?formals
) , formals(function(x) {})
返回一个pairlist:
is(formals(function(x){}))
# [1] "pairlist"
Unlike list物体,pairlist对象可以具有不包含任何值的命名元素——在构造具有可能可选的形式参数的函数时,这是一件非常好的事情。从?pairlist
:
允许没有值的标记参数,而“list”则简单地忽略它们。
要看到差异,请比较alist()
,它创建配对列表,其中list()
它构建了“普通旧”列表:
list(x=, y=2)
# Error in list(x = , y = 2) : argument 1 is empty
alist(x=, y=2)
# $x
#
# $y
# [1] 2
你的问题:什么是formals(function(x) {})$x
?
现在回答你的问题formals(function(x) {})$x
是。我的理解在某种意义上是realvalue 是“空符号”。然而,您无法从 R 内部获取它,因为“空符号”是 R 开发人员(很大程度上是有意为之)试图完全向 R 用户隐藏的对象。 (关于空符号的有趣讨论,以及为什么它被隐藏,查看从这里开始的线程).
当人们试图通过索引对列表中的空值元素来获取它时,R 的开发人员会通过让 R 返回name元素的属性而不是其禁止公众查看的属性value。 (这当然是name您的问题中显示的对象)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)