【发布时间】:2018-12-19 17:11:59
【问题描述】:
R language definition(适用于版本 3.5.1)状态
表达式
x[]返回x,但从 结果。只有names和多维数组dim和dimnames属性被保留。
但请考虑以下示例:
v <- factor(c(dog = 1, cat = 3))
attr(v, "label") <- "feeling confused"
attributes(v)
# $`names`
# [1] "dog" "cat"
#
# $levels
# [1] "1" "3"
#
# $class
# [1] "factor"
#
# $label
# [1] "feeling confused"
attributes(v[])
# $`names`
# [1] "dog" "cat"
#
# $levels
# [1] "1" "3"
#
# $label
# [1] "feeling confused"
#
# $class
# [1] "factor"
属性顺序已更改,但所有属性都保留。
all.equal(attributes(v)[c(1,2,4,3)], attributes(v[]))
# [1] TRUE
为什么我的示例可以豁免?或者我错过了什么?
【问题讨论】:
-
您能否提供一个反例,其中删除了“不相关的属性”?
-
@Mako212 不,实际上我不能。但没有搜索太多。
-
我也不确定那个例子是什么,但我认为我们不能认为
v的属性无关紧要。也许这与 S3/S4 类属性有关? -
一些与思考有关的东西:stackoverflow.com/q/41191623/324364
-
在stat.ethz.ch/pipermail/r-help/2015-December/434647.html 中发现了一些相关的东西,它表明R 语言定义存在。
标签: r