【问题标题】:Adjust long tables with kableExtra使用 kableExtra 调整长表
【发布时间】:2021-03-13 21:11:09
【问题描述】:

我正在使用来自 dslabs 包的乳腺癌数据,并且我正在使用 kableExtra 生成漂亮的表格,但我有很多列,我试图缩小并生成一个包含 11-12 变量的汇总表时间,但看起来还是太小了。

问题1:您知道如何生成一个表,其中行作为变量(列)和列,统计数据为minmaxmean ...?我相信有一种有效的方法可以做到这一点

# my current code

data(brca)
data=data.frame(cbind(brca$y,brca$x))
data=data %>% 
  rename(
    Diagnosis = V1
    )

desc=summary(data)


kable(desc[,1:12],caption = "Descriptif of variables",booktabs=T)%>%
  kable_styling(latex_options =c("striped", "scale_down"))

kable(desc[,13:21],caption = "Descriptif of variables",booktabs=T)%>%
  kable_styling(latex_options =c("striped", "scale_down"))

kable(desc[,22:31],caption = "Descriptif of variables",booktabs=T)%>%
  kable_styling(latex_options =c("striped", "scale_down"))

问题 2:如果您对如何在乳胶中包含 Rmd 文件有任何想法或资源,将不胜感激,因为现在,我用 R 生成我的表格,然后对我的表格进行屏幕截图,最后将它们插入我的乳胶(我的桌子太多太累了)。

提前感谢您的帮助。

【问题讨论】:

    标签: r knitr kableextra


    【解决方案1】:

    问题1:

    您可以使用dplyr::summarize_all 汇总数据框中的所有列。这将输出一个宽数据集,其中包含一行,列数等于数据集中的列数乘以您想要的汇总统计数据的数量。例如,它将包含texture_mean_meantexture_mean_medtexture_mean_max

    tidyr::pivot_longer 会将这个宽数据集转换为您想要的更长的数据集。 names_tonames_pattern 是这样做的。 (.*)_(.*)$ 是一个正则表达式,它捕获两件事:最后一个下划线之前的所有内容和最后一个下划线之后的所有内容:(texture_mean)_(mean)。第一个捕获映射到名为“variable”的列的值,第二个捕获成为具有相应值的新列的名称。

    data %>% 
      dplyr::summarize_all(list(mean = ~mean(.),
                                med = ~median(.),
                                max  = ~max(.))) %>% 
      tidyr::pivot_longer(everything(),
                          names_to = c("variable", ".value"),
                          names_pattern = "(.*)_(.*)$") 
    

    问题2:

    查看Hmisc::latex 函数。它将乳胶代码输出到文件中:

    data %>% 
      dplyr::summarize_all(list(mean = ~mean(.))) %>% 
      tidyr::pivot_longer(everything(),
                          names_to = c("variable", ".value"),
                          names_pattern = "(.*)_(.*)$") %>% 
        Hmisc::latex(na.blank = TRUE, 
                     booktabs = TRUE, 
                     table.env = FALSE, 
                     center = "none", 
                     file = "", 
                     title = "")
    

    会输出

    %latex.default(., na.blank = TRUE, booktabs = TRUE, table.env = FALSE,     center = "none", file = "", title = "")%
    \begin{tabular}{llrrr}
    \toprule
    \multicolumn{1}{l}{}&\multicolumn{1}{c}{variable}&\multicolumn{1}{c}{mean}&\multicolumn{1}{c}{med}&\multicolumn{1}{c}{max}\tabularnewline
    \midrule
    1&Diagnosis&$1.37258347978910e+00$&$1.000e+00$&$2.000e+00$\tabularnewline
    2&radius_mean&$1.41272917398946e+01$&$1.337e+01$&$2.811e+01$\tabularnewline
    3&texture_mean&$1.92896485061511e+01$&$1.884e+01$&$3.928e+01$\tabularnewline
    4&perimeter_mean&$9.19690333919156e+01$&$8.624e+01$&$1.885e+02$\tabularnewline
    5&area_mean&$6.54889103690685e+02$&$5.511e+02$&$2.501e+03$\tabularnewline
    6&smoothness_mean&$9.63602811950791e-02$&$9.587e-02$&$1.634e-01$\tabularnewline
    7&compactness_mean&$1.04340984182777e-01$&$9.263e-02$&$3.454e-01$\tabularnewline
    8&concavity_mean&$8.87993158172232e-02$&$6.154e-02$&$4.268e-01$\tabularnewline
    9&concave_pts_mean&$4.89191458699473e-02$&$3.350e-02$&$2.012e-01$\tabularnewline
    10&symmetry_mean&$1.81161862917399e-01$&$1.792e-01$&$3.040e-01$\tabularnewline
    11&fractal_dim_mean&$6.27976098418278e-02$&$6.154e-02$&$9.744e-02$\tabularnewline
    12&radius_se&$4.05172056239016e-01$&$3.242e-01$&$2.873e+00$\tabularnewline
    13&texture_se&$1.21685342706503e+00$&$1.108e+00$&$4.885e+00$\tabularnewline
    14&perimeter_se&$2.86605922671353e+00$&$2.287e+00$&$2.198e+01$\tabularnewline
    15&area_se&$4.03370790861160e+01$&$2.453e+01$&$5.422e+02$\tabularnewline
    16&smoothness_se&$7.04097891036907e-03$&$6.380e-03$&$3.113e-02$\tabularnewline
    17&compactness_se&$2.54781388400703e-02$&$2.045e-02$&$1.354e-01$\tabularnewline
    18&concavity_se&$3.18937163444640e-02$&$2.589e-02$&$3.960e-01$\tabularnewline
    19&concave_pts_se&$1.17961370826011e-02$&$1.093e-02$&$5.279e-02$\tabularnewline
    20&symmetry_se&$2.05422987697715e-02$&$1.873e-02$&$7.895e-02$\tabularnewline
    21&fractal_dim_se&$3.79490386643234e-03$&$3.187e-03$&$2.984e-02$\tabularnewline
    22&radius_worst&$1.62691898066784e+01$&$1.497e+01$&$3.604e+01$\tabularnewline
    23&texture_worst&$2.56772231985940e+01$&$2.541e+01$&$4.954e+01$\tabularnewline
    24&perimeter_worst&$1.07261212653779e+02$&$9.766e+01$&$2.512e+02$\tabularnewline
    25&area_worst&$8.80583128295255e+02$&$6.865e+02$&$4.254e+03$\tabularnewline
    26&smoothness_worst&$1.32368594024605e-01$&$1.313e-01$&$2.226e-01$\tabularnewline
    27&compactness_worst&$2.54265043936731e-01$&$2.119e-01$&$1.058e+00$\tabularnewline
    28&concavity_worst&$2.72188483304042e-01$&$2.267e-01$&$1.252e+00$\tabularnewline
    29&concave_pts_worst&$1.14606223198594e-01$&$9.993e-02$&$2.910e-01$\tabularnewline
    30&symmetry_worst&$2.90075571177504e-01$&$2.822e-01$&$6.638e-01$\tabularnewline
    31&fractal_dim_worst&$8.39458172231986e-02$&$8.004e-02$&$2.075e-01$\tabularnewline
    \bottomrule
    \end{tabular}
    

    有关更多信息,请查看此question(特别是使用latex 函数的答案)

    【讨论】:

      猜你喜欢
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2020-12-14
      • 2018-04-30
      • 1970-01-01
      相关资源
      最近更新 更多