R中“,”的含义是什么?

时间:2014-09-13 00:35:03

标签: r

我是R的新手。如果您认为这个问题太简单,请原谅我。我最近看到了一个这样的例子。

x <- factor ( c( "yes", "yes", "no", "yes", "no" ) )
attr (, "levels")

我理解R中的attr用于查找对象的属性。什么&#34;,&#34;这意味着什么

2 个答案:

答案 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函数。