如何以最小的格式将数据框导出到乳胶?

ℕʘʘ*_*ḆḽḘ 1 latex r xtable stargazer

考虑这个简单的例子

library(dplyr)
dataframe <- data_frame(mytext1 = c('HELLO',
                                   'WORLD'),
                        mytext2 = c('HELLO',
                                   'AGAIN'),
                        value1 = c(1,2), 
                        value2 = c(1,2))

# A tibble: 2 x 4
  mytext1 mytext2 value1 value2
    <chr>   <chr>  <dbl>  <dbl>
1   HELLO   HELLO      1      1
2   WORLD   AGAIN      2      2
Run Code Online (Sandbox Code Playgroud)

我想将此数据框导出到乳胶表,但进行一些小的(但重要的)调整。

特别是,我想在乳胶输出中添加一个分隔文本变量的超级列和另一个分隔数字变量的超级列。mat也就是说,本图像中的某些内容com

在此输入图像描述

我尝试了 R 包xtabletables但无法实现接近的目标(可能是因为它们创建了汇总统计表)。我在这里错过了什么吗?

谢谢!

Mar*_*ius 6

您可以使用包kableknitrkableExtra包中的内容来执行此操作:

```{r table, results='asis'}
library(knitr)
library(kableExtra)
library(magrittr)

dataframe <- data.frame(mytext1 = c('HELLO',
                                   'WORLD'),
                        mytext2 = c('HELLO',
                                   'AGAIN'),
                        value1 = c(1,2), 
                        value2 = c(1,2))

dataframe %>%
    kable(format = 'latex', booktabs = TRUE) %>%
    add_header_above(header = c("Text" = 2, "Values" = 2))
``` 
Run Code Online (Sandbox Code Playgroud)

在这里,我展示了 RMarkdown 块中包含的代码,其中在编织为 PDF 时自动包含表格,但代码也应该在 RMarkdown 之外独立工作。

单独运行代码,您将获得该表的 Latex 代码作为输出:

\begin{tabular}{llrr}
\toprule
\multicolumn{2}{c}{Text} & \multicolumn{2}{c}{Values} \\
\cmidrule(l{2pt}r{2pt}){1-2} \cmidrule(l{2pt}r{2pt}){3-4}
mytext1 & mytext2 & value1 & value2\\
\midrule
HELLO & HELLO & 1 & 1\\
WORLD & AGAIN & 2 & 2\\
\bottomrule
\end{tabular}
Run Code Online (Sandbox Code Playgroud)