【发布时间】:2014-02-18 21:31:24
【问题描述】:
在下面的示例中,当名称设置为 NULL 时,all.equal 会抛出 'Error: not compatible with STRSXP'
但是,如果名称设置为 NA(或其他值),all.equal 将正常工作。
这是预期行为还是错误?
## SAMPLE DATA
set.seed(1)
x <- data.frame(LETTERS[1:3], rnorm(3))
names(x) <- NULL
x
# NA NA
# 1 A -0.626454
# 2 B 0.183643
# 3 C -0.835629
all.equal(x, x)
# Error: not compatible with STRSXP
# add names back in, even 'NA'
names(x) <- c(NA, NA)
all.equal(x, x)
# [1] TRUE
【问题讨论】:
-
我敢打赌你已经加载了 dplyr!我认为这是该包中的
all.equal.data.frame方法中的一个错误,它正在被调度。 -
确保在没有额外的包、R --vanilla 或类似的情况下启动 R;报告您的 R 版本。在
> R.version.string[1]“R 开发中(不稳定)(2014-01-22 r64855)”或“R 版本 3.0.2 已修补(2014-01-02 r64626)”下,我看不到这一点 -
@joran,我确实这样做了。感谢您为我指明正确的方向。用
all.equal.default替换all.equal解决了它。 -
顺便说一句,R 崩溃和完全无用的错误消息是绝对错误
-
@NiklasB.,当然,但我很好奇这样做会有什么样的缺点?