All.equal на объекте с именами NULL вызывает ошибку "Ошибка: не совместимо с STRSXP" - ошибка или ожидаемая?

В приведенном ниже примере, когда имена установлены на NULL, all.equal throws '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

Ответы

Ответ 1

Как указывает @Joran, это похоже на dplyr. Подано в качестве проблемы: https://github.com/hadley/dplyr/issues/219

Временная работа (для моей потребности по крайней мере. Не работает для всех) заключается в использовании

 all.equal.default(x, x)

FYI:

  ## 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