2013-06-12 7 views
5

左揃え文字列を使用してtableGrobを作成すると、最終結果に最後にクリッピングされた文字列が表示されます。 バグですか、何か逃しましたか?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")) 

答えて

10

これはバグです。パッケージ作成者は、グリッドのテキストの正当性を明確に理解していません。

あなたは一種のように、

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") 

および/またはより多くのスペースを与えるためにpadding.hパラメータを調整するようにそれを修正することができます。一言、何が混乱しているの?

+0

+1がうまく動作します! btw、素晴らしいユーモア!間違っているのですか、それともあなたが作者ですか? :-) – Michele

+1

'tableGrob'はこれらの廃止にもかかわらず非常に有用なツールのままです。 –

+0

"\ n"と 'padding.h = unit(10、" mm ")'でテストしたところ、結果は優れていました。 –