Skip to content
Prev 257478 / 398502 Next

grid.table + splom: how to nicely align panel entries

On 20 April 2011 21:16, Marius Hofert <m_hofert at web.de> wrote:
You can put the equal signs in their own column,

library(gridExtra)
d = matrix(c("italic(a)", "phantom()==phantom()", round(pi,4),
"italic(b)", "phantom()==phantom()", round(pi,6)), ncol=3, byrow=T)
grid.table(d, parse=T,theme=theme.list(core.just="left"))
You could place some phantom()s to do this,

align.digits = function(l)
{

sp <- strsplit(as.character(l), "\\.")
chars <- sapply(sp, function(x) nchar(x)[1])
n = max(chars) - chars
l0 = sapply(n, function(x) paste(rep("0", x), collapse=""))
labels = sapply(seq_along(sp), function(i) {
  as.expression(bquote(phantom(.(l0[i])) * .(sp[[i]][1])*.*.(sp[[i]][2])))})

return(labels)
}

library(gridExtra)

d <- align.digits(l = c(125.3, 1.23444444))
grid.table(d, parse=T,core.just="left")

HTH,

baptiste