私は ReporteRs パッケージが好きですが、Flextable をフォーマットしてそのサイズを維持する方法を見つけることができません。1 つの列を他の列よりも 3 倍広くしたい場合は、それを設定できますが、テーブルは PPT で準備されたスペースを保持しません。
これは、ReporteRs ホーム Web サイトの元のコードの一部です。ReporteRsパッケージと出力パスがインストールされている人なら誰でも機能するはずです。
library( ReporteRs )
mydoc <- pptx( )
mydoc <- addSlide( mydoc, "Two Content" )
mydoc <- addTitle( mydoc, "First 10 lines of iris" )
MyFTable <- FlexTable(iris[1:10,] )
mydoc <- addFlexTable( mydoc, MyFTable )
mydoc <- addParagraph( mydoc, value = c("", "Hello World!") )
writeDoc(mydoc, "C:/DATAOLD/REPORTERS/REP.pptx" )
それはうまく機能し、出力スライドは次のようになります。
列幅を変更した後、テーブルが準備されたスペースに収まりません
library( ReporteRs )
mydoc <- pptx( )
mydoc <- addSlide( mydoc, "Two Content" )
mydoc <- addTitle( mydoc, "First 10 lines of iris" )
twidth<-c(1,1,1,1,3)
MyFTable <- FlexTable(iris[1:10,] )
MyFTable <- setFlexTableWidths( MyFTable, widths = twidth)
mydoc <- addFlexTable( mydoc, MyFTable )
mydoc <- addParagraph( mydoc, value = c("", "Hello World!") )
writeDoc(mydoc, "C:/DATAOLD/REPORTERS/REP.pptx" )
特別なサイズパラメータが存在しない限り、テーブルのサイズはプレースホルダーのサイズに合わせて常に変更されると信じていましたが、テーブルが単純に広くなったことは理解できます。
この問題の簡単な解決策はありますか? 一部の列を他の列よりも広くし、テーブル全体をプレースホルダー内に保持する必要があるだけです。twidth の再スケーリング
twidth<-twidth*length(twidth)/sum(twidth)
一部の列が狭すぎるため、解決策ではありません。
コメントありがとうございます。
編集: Github に関する David Gohel のコメントによると https://github.com/davidgohel/ReporteRs/issues/146#issuecomment-258485791
現時点では、Flextable の高さを簡単に制御することはできません。
幅は、フォントと列の幅によって部分的に制御できます。