2014-04-24 36 views
7

Mam następujący skrypt: RBłąd grid.arrange: wejście musi być grobs

library(ggplot2) 
    library(gridExtra) 
    Sys.setenv(LANG ="en") 
    c1 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar() 
    c2 <- ggplot(mtcars, aes(factor(cyl))) + geom_bar() + coord_flip() 
    grid.arrange(c1, c2, ncols=1) 

pojawia się następujący błąd z grid.arrange:

Błąd w arrangeGrob (.. ., as.table = as.table, clip = zacisk, główny = główne,: wejście musi być grobs

nie mogę dowiedzieć się, co jest przyczyną problemu

!.

Oto moje używane wersje:

sessionInfo() wersja R 3.0.2 (25.09.2013) Platforma: x86_64-jabłko-darwin10.8.0 (64-bit)

locale: 
    [1] de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/de_DE.UTF-8 

    attached base packages: 
    [1] grid  stats  graphics grDevices utils  datasets methods base  

    other attached packages: 
    [1] gridExtra_0.9.1 ggplot2_0.9.3.1 

    loaded via a namespace (and not attached): 
    [1] colorspace_1.2-4 digest_0.6.4  gtable_0.1.2  labeling_0.2  MASS_7.3-31  munsell_0.4.2 plyr_1.8.1  proto_0.3-10  Rcpp_0.11.1  reshape2_1.2.2 
    [11] scales_0.2.4  stringr_0.6.2 tools_3.0.2    

Odpowiedz

16

Podobał mi się ten konkretny błąd, jest to ukradkowy. Krótko mówiąc, parametr to ncol, a nie ncols. W twoim kodzie 1 jest traktowany jako obiekt fabuły, dlatego nie działa, nie dlatego, że ggplots są nieprawidłowe. Komunikat o błędzie nie jest bardzo pomocny, co zaciemnia sytuację.

# same error as with ncols=1 
grid.arrange(c1, c2, blah=1) 
# fine 
grid.arrange(c1, c2, ncol=1) 
+0

Wielkie dzięki. Wydaje mi się, że jest dla mnie za wcześnie. Sprawdziłem dwukrotnie wszystko oprócz tego .... Dziękuję! – JerryWho

+0

@JerryWho Nie ma za co! – tonytonov

Powiązane problemy