我是R的新手。如果您认为这个问题太简单,请原谅我。我最近看到了一个这样的例子。
x <- factor ( c( "yes", "yes", "no", "yes", "no" ) )
attr (, "levels")
我理解R中的attr用于查找对象的属性。什么&#34;,&#34;这意味着什么
答案 0 :(得分:3)
当您编写attr(,"levels")
时,这意味着您将attr
中的第一个参数留空了。这会导致错误,因为函数不能与空的第一个参数一起使用(嗯,实际上它可以。见下文)。
> x <- factor ( c( "yes", "yes", "no", "yes", "no" ) )
> x
# [1] yes yes no yes no
# Levels: no yes
> attr(, "levels")
# Error in attr(, "levels") : argument 1 is empty
你可以用
获得毫无意义的结果> attr(which = "levels", exact = FALSE)
# NULL
但这没有任何意义,因为我们还没有将对象传递给attr
来获取属性。
对于有意义的结果,您需要感兴趣的对象作为第一个参数。
> attr(x, "levels")
# [1] "no" "yes"
您还可以使用attributes
> attributes(x)
# $levels
# [1] "no" "yes"
#
# $class
# [1] "factor"
以及levels
> levels(x)
# [1] "no" "yes"
答案 1 :(得分:0)
当打印具有属性的对象时,默认(除非对象的类具有特殊的打印方法,否则会发生)是以问题中描述的样式显示属性值。例如:
structure(1:5, an_attribute = "something")
## [1] 1 2 3 4 5
## attr(,"an_attribute")
## [1] "something"
这是纯粹印刷的信息;正如Richard Scriven所指出的那样,你不能在缺少第一个参数的情况下调用attr
函数。