2013-06-12 9 views
5

Wenn ich einen tableGrob mit linksbündig ausgerichteten Zeichenfolgen erstelle, zeigt das Endergebnis die am Ende abgeschnittenen Zeichenfolgen an. Ist ein Fehler oder ich etwas verpasst?Falsche linksbündige Ausrichtung mit tableGrob

library(gridExtra) 
slices <- c(10, 12, 4, 16, 8) 
lbls <- c("US", "UK", "long string left justified but is clipped at the end", "Germany", "France") 
z <- data.frame(lbls,slices) 
grid.newpage() 
grid.draw(tableGrob(z, core.just="left")) 

Antwort

10

Es ist ein Fehler; der Paketautor versteht die Rechtfertigung des Textes im Raster eindeutig nicht.

Sie können sortieren sie von fix wie so,

textii <- function(d, gp=gpar(), name="row-label-", 
        just="center", parse=TRUE){ 
    x <- switch(just, "center"=0.5, "right"=1, "left"=0) 
    parseglobal <- parse 
    function(ii, parse=parseglobal){ 
     lab <- if(parse) parse(text=d[ii]) else d[ii] 
     textGrob(x=x, label=lab, just=just, gp=gp, name=paste(name, ii, sep="")) 
    } 
} 

assignInNamespace("textii", textii, "gridExtra") 
grid.table(z, core.just="left") 

und/oder stellen Sie den padding.h Parameter mehr Raum zu geben. Seufz, was für ein Durcheinander.

+0

funktioniert gut +1! Übrigens, guter Humor! Liege ich falsch oder bist du der Autor? :-) – Michele

+1

'tableGrob' bleibt trotz dieser Abwertungen ein sehr hilfreiches Werkzeug. –

+0

Ich habe es gerade mit einer "\ n" und 'padding.h = Einheit (10," mm ") getestet und die Ergebnisse waren hervorragend. –

Verwandte Themen