2017-12-05 8 views
0

こんにちは私はkableExtraでこの素晴らしいテーブルを作ったが、私の唯一の問題は、行の高さが常に等しいとは限りません。誰にもこれに対する救済方法が分かっていますか?kableExtra()内の行の高さを制御

私のテーブル:例えば

enter image description here

、あなたが見ることができるように、項目番号22(6行目)のためのラインが他のラインよりも大きい高さ(間隔)を有しています。

私のコード:

my_column_names = c("Item number", "Item", 
       "Emotion", "Social", 
       "At Home", "Body", "Emotion", 
       "Social 1", "Social 2", 
       "At Home", "Body") 

kable(df1, 
     format = "latex", booktabs = TRUE, 
     col.names = my_column_names, 
     caption = "Factor loadings for the 4 and 5 Factor Model") %>% 
     kable_styling(latex_options = c("striped", "hold_position"), 
        full_width = FALSE) %>% 
     add_header_above(c(" " = 2, 
       "4 Factor Model " = 4, "5 Factor model" = 5)) %>% 
     add_header_above(c(" " = 2, 
       "Model" = 9)) %>% 
     kableExtra::landscape() 

答えて

1

デフォルトでは、kableは5行ごとに\addlinespaceを挿入するため、行の高さが常に等しいとは限りません。それを取り除くには、をkable()に入れてください。詳細はGet rid of \addlinespace in kableを参照してください。

+0

うわー、これは、私はまた、(私は今削除された)それらのスペースを手動で特定の行に追加できますか?これは、1つの要素に負荷をかけている項目のグループを明確に区別するためです。 –

+0

私はあなたができると思うが、私はそれを試していない。 'kableExtra'から' group_rows'を使うこともできますが、必要なスペースと共にラベル行を挿入します。 :P – Hao

1

通常、これはあなたがHTMLテーブルにCSSを経由して変更することができるものです。 kableExtraでこれを行う方法がわかりませんが、tableHTMLとするとよいでしょう。私は、行の高さを証明するために、以下の小さな例を追加してい:

library(tableHTML) 
tableHTML(mtcars[1:10, ], 
      border = 1, 
      rownames = TRUE, 
      caption = 'This is a caption', 
      footer = 'This is a footer', 
      widths = c(140, rep(50, 11)), 
      second_headers = list(c(2, 5, 6), c('', 'col2', 'col3')), 
      theme = 'scientific') %>% 
    add_css_row(list('height', '50px'), rows = 3:12) 

enter image description here

あなたはしたくない場合は、科学的なテーマを使用する必要はありません。このパッケージでは、好きなCSS(ストライプ行など)を柔軟に追加できます。興味があればチュートリアルhereをチェックすることができます。

P.S.現在、1つの余分なヘッダーしかサポートしていません。それ以外は、テーブル全体を複製することができます。

+0

ありがとうございますが、これはpdfではうまくいかないのですか? –

+0

Rmarkdownを使用している場合は、pdf yesとニットすることができます。 – LyzandeR

関連する問題