在下面的示例中,当名称设置为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
答案 0 :(得分:10)
@Joran指出,这似乎与dplyr
有关。
归档为问题:https://github.com/hadley/dplyr/issues/219
临时工作(至少我需要。不适用于所有人)是使用
all.equal.default(x, x)
仅供参考:
## STARTING FROM A FRESH SESSION:
set.seed(1)
x <- data.frame(LETTERS[1:3], rnorm(3))
names(x) <- NULL
all.equal(x, x)
# [1] TRUE
## Load in dplyr
library(dplyr)
all.equal(x, x)
# Error: not compatible with STRSXP