2012-10-11 3 views
8

Beim Erstellen einer Tabelle mit tableGrob oder grid.table. Gibt es eine Möglichkeit, den Text in der Tabelle auszurichten? Erste Spalte nach links und die anderen Spalten nach rechts? Eher als der Standard "Mitte".Ausrichtung von Text bei Verwendung von tableGrob oder grid.table in R

Vielen Dank!

so etwas wie das: wo ich Spalte "a" nach links ausgerichtet wünschen.

a <- c("one","two","thirty five") 
b <- c(1, 2, 3) 
c <- c(4, 5, 6) 

data <- data.frame(a,b,c) 

windows() 

grid.table(
    data, 
    gpar.coretext=gpar(fontsize = 12),    
    gpar.coltext = gpar(fontsize = 12),    
    gpar.rowtext = gpar(fontsize = 12),    
    gpar.corefill = 
    gpar(fill = "green", alpha = 0.5, col = NA),   
    h.even.alpha = 0.5,    
    equal.width = FALSE,    
    show.rownames = FALSE,    
    show.vlines = TRUE,   
    padding.h = unit(15, "mm"),    
    padding.v = unit(8, "mm")    
) 
+2

Ich bin nicht sicher, warum dies die Abstimmung wird immer zu schließen. Es fehlt ein reproduzierbares Beispiel, aber es ist nicht wirklich eine lokalisierte Frage. –

+1

Würden Sie uns bitte ein wenig von Ihrem Code teilen und mehr erklären? – Ali

+0

Ich habe gerade den Code hinzugefügt. Vielen Dank! – tus

Antwort

5

Ist das wonach Sie suchen? Es gibt einen core.just Parameter des format() Anrufs.

require("gridExtra") 

n=5 
df<- data.frame(x=rnorm(n),y=rnorm(n),z=sample(letters[1:2],n,replace=T)) 


g1<-tableGrob(
format(df, digits = 1, 
    scientific=F,big.mark = ","), 
    core.just="left", 
    #core.just="right", 
    #col.just="right", 
    gpar.coretext=gpar(fontsize=8), 
    gpar.coltext=gpar(fontsize=9, fontface='bold'), 
    show.rownames = F, 
    h.even.alpha = 0, 
    gpar.rowtext = gpar(col="black", cex=0.7, 
          equal.width = TRUE, 
          show.vlines = TRUE, 
          show.hlines = TRUE, 
          separator="grey")      
) 

grid.draw(g1) 
+0

Danke !!! Die linke Spalte ist genau so, wie ich es wollte. Wenn ich meinen Code für meine Daten ausführe, wurden die Eingaben in den anderen Spalten anders ausgerichtet (einige in der Mitte, einige links). Will das Format() genauer erforschen, um das herauszufinden. Vielen Dank! – tus

+1

Ich möchte meine letzte Spalte und die letzte Zeile als fett formatieren. Bitte lassen Sie mich wissen, wie es geht. Ich bin entweder in der Lage, alle Zeilen und Spalten fett zu machen. http://stackoverflow.com/questions/29340345/make-first-and-last-row-of-a-dataframe-bold-using-tablegrob bitte helfen –

4

Mit gridExtra v> = 2.0.0, werden die Parameter nun über verschachtelte Listen (Themen) gesteuert,

library(gridExtra) 
library(grid) 
n=5 
d <- data.frame(x=rnorm(n),y=rnorm(n),z=sample(letters[1:2],n,replace=T)) 

m <- format(d, digits = 1, scientific=F,big.mark = ",") 

mytheme <- ttheme_default(core = list(fg_params = list(hjust=0, x=0.1, 
                 fontsize=8)), 
          colhead = list(fg_params = list(fontsize=9, 
                  fontface="bold")) 
         ) 
g1 <- tableGrob(m, theme = mytheme, rows=NULL) 
grid.newpage() 
grid.draw(g1) 
Verwandte Themen