2014-01-27 2 views
13

Im Beispiel unten, wenn Namen NULL gesetzt sind, all.equal wirft 'Error: not compatible with STRSXP'
Wenn jedoch Namen zu NA (oder einem anderen Wert) festgelegt sind, all.equal arbeitet als normal.
Ist das erwartete Verhalten oder ein Fehler?all.equal auf Objekt mit NULL-Namen verursacht 'Fehler: nicht kompatibel mit STRSXP' - Fehler oder erwartet?

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

Ich wette, Sie haben * * dplyr ** geladen! Ich denke, es ist ein Fehler in der Methode 'all.equal.data.frame' aus diesem Paket, das stattdessen ausgelöst wird. – joran

+0

Achten Sie darauf, R ohne zusätzliche Pakete zu starten, R --vanilla oder ähnliches; Melden Sie Ihre R-Version an. Dies ist nicht für mich unter einem>> R.version.string [1] "R Under Entwicklung (instabil) (2014-01-22 r64855)" oder "R Version 3.0.2 Patched (2014-01-02 r64626) " –

+0

@joran, tue ich tatsächlich. Danke, dass Sie mich in die richtige Richtung weisen. Das Ersetzen von 'all.equal' durch' all.equal.default' löste es. –

Antwort

9

Wie @Joran weist darauf hin, scheint dies zu dplyr zusammenzuhängen. Filed als Thema: https://github.com/hadley/dplyr/issues/219

Zeitarbeit um (für mein Bedürfnis zumindest Wird nicht für alle arbeiten.)

all.equal.default(x, x) 

zu verwenden ist 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 
Verwandte Themen