有没有一种方法可以为R中的Word制作漂亮的表格?

时间:2019-09-26 09:09:00

标签: r dataframe ms-word markdown r-markdown

我在SO上问我的问题,这是我最后的希望:-) 我必须编写有关Word的报告。 我在R Markdown上工作,在那里我必须产生许多表。 我希望我的桌子很漂亮!但是我尝试的所有内容(panderKableExtraflextable)都无效。

我从coxph模型中获取结果,对其进行汇总,然后构建如下所示的data.frame

  1                                        Model 1                         Model 2
2                                         n= 375                          n= 374
3                                          e= 65                           e= 64
4                                       PH= 0.46                        PH= 0.97
5            Weight                          ---     1.0  [ 1.0 ; 1.1 ] p = 0.03
6              Size                          --- 1.0  [ 1.0 ; 1.0 ] p = < 10^-3^
7              GR I                          ---                               1
8             GR II                          --- 1.2e+06  [ 0.0 ; Inf ] p = 1.00
9            GR III                          --- 1.4e+06  [ 0.0 ; Inf ] p = 1.00
10            Roads                            1 1.1  [ 1.0 ; 1.1 ] p = < 10^-5^
11            Score  1.0  [ 0.9 ; 1.0 ] p = 0.04                             ---
12 Likelihood ratio Chi-two= 4.48 p-value= 0.034  Chi-two= 2.73 1 p-value= 0.098
                                V4
1                          Model 3
2                           n= 374
3                            e= 64
4                         PH= 0.96
5      1.0  [ 1.0 ; 1.1 ] p = 0.05
6  1.0  [ 1.0 ; 1.0 ] p = < 10^-2^
7                                1
8  1.3e+06  [ 0.0 ; Inf ] p = 1.00
9  1.7e+06  [ 0.0 ; Inf ] p = 1.00
10 1.1  [ 1.1 ; 1.1 ] p = < 10^-6^
11     1.0  [ 0.9 ; 1.0 ] p = 0.10

在Latex上,创建漂亮的表很容易,而我使用xtable来获取此表 Latex table

在R Markdown上,我使用print(kable(table)),但不能使用KableExtra中的任何功能来改善外观(编织成文字时不起作用)。 另外,我的表是循环制作的,这使情况变得更加困难。

您有任何线索可以从R Markdown在Word上生成此类表格吗?

尤其是:

  • 我们可以去一个单元格里的那一行吗?
  • 我们可以创建多行单元格吗?
  • 我们可以创建多列单元格吗?
  • KableExtra无法正常工作的情况下,如何添加试条?

感谢您对以上问题的回答:-)

2 个答案:

答案 0 :(得分:1)

kableExtra专注于html内容表。但是,有时我也使用它通过以前的html输出为Word文档创建表。首先,我在kableExtra中设置了表的规范(请参阅文档;重要的是:跳过html规范中的kableExtra属性,这使得随后将表复制到Word变得很困难)。然后,我仅使用RMarkdown将相应的results='show'文档编织成html(在这些情况下,我不使用print)。从生成的html文档中,您应该能够将表复制并粘贴到Word中。你有尝试过吗?我假设print命令不允许常规的kableExtra表样式。您还可以使用lapply遍历表吗?

答案 1 :(得分:1)

您是否已经尝试过stargazer软件包?您可以使用type参数指定表的输出格式。编织成文字时,唯一对我有用的是text格式。请参见下面循环运行的示例。它应该运行,但可能需要一些调整。

```{r word_table, comment = ''}
library(stargazer)

lapply(1:3, function(x){
  print(paste("table", x))
  stargazer(attitude, type = 'text')      
})
```

我将这段代码改编自Stargazer output is code, not a table