【问题标题】:Make a beautiful report on latex from R从 R 中制作一份关于乳胶的漂亮报告
【发布时间】:2018-07-25 08:45:24
【问题描述】:

我想使用R 代码生成latex 报告。 我知道这个话题已经讨论过很多次了,我在xtableHmiscstargazerreporttools 之类的包之间迷失了方向。

我有一个数据库,其中包含大约 30 个变量(定量和定性)以及一个变量 X(在 TMA 示例中是/否)。 我想生成一个表格,其中包含每个变量的摘要,根据二进制变量 X 的变量摘要,以及根据变量 X 的适当测试(定量变量的学生测试和定性变量的 Fisher 测试)。

最后,我会得到这个:

示例代码如下:

AAA = matrix (data = c (rnorm (10), round (runif (10, min = 1, max = 3), digits = 0), rbinom (10,1,0.5)), nrow = 10, byrow = F)
AAA = as.data.frame (AAA); AAA $ V2 = as.factor (AAA $ V2) 

我已经一个星期没有努力寻找解决方案了!

我将不胜感激。

【问题讨论】:

  • 我会选择knitr 包。它可能有一个更陡峭的学习曲线,但更灵活。
  • 您想创建R 代码来准确生成此表,还是生成初步形式的相关统计信息的代码就足够了?尽管xtable 提供了广泛的选择,但我不确定是否可以实现副标题之类的功能。
  • 我不需要完全生成这张表,任何能生成类似内容的代码都会很棒。
  • 如果您想要一种比tablesgenerator.com 更快捷的方法。您还可以使用上述链接生成代码。
  • 感谢您的提示。我之前使用的是 tablesgenerator.com!这一次,我想要更“专业”的东西。

标签: r latex sweave xtable


【解决方案1】:

尝试使用 tableone 包创建 TableOne 对象并从 knitr 包中创建 kable 以创建乳胶。

library(tableone)
library(knitr)

example(CreateTableOne)
p <- print(tableOne, printToggle = FALSE, noSpaces = TRUE)
kable(p, format = "latex")

给予:

\begin{tabular}{l|l|l|l|l}
\hline
  & 1 & 2 & p & test\\
\hline
n & 158 & 154 &  & \\
\hline
time (mean (sd)) & 2015.62 (1094.12) & 1996.86 (1155.93) & 0.883 & \\
\hline
status (\%) &  &  & 0.894 & \\
\hline
0 & 83 (52.5) & 85 (55.2) &  & \\
\hline
1 & 10 (6.3) & 9 (5.8) &  & \\
\hline
2 & 65 (41.1) & 60 (39.0) &  & \\
\hline
age (mean (sd)) & 51.42 (11.01) & 48.58 (9.96) & 0.018 & \\
\hline
sex = f (\%) & 137 (86.7) & 139 (90.3) & 0.421 & \\
\hline
ascites = 1 (\%) & 14 (8.9) & 10 (6.5) & 0.567 & \\
\hline
hepato = 1 (\%) & 73 (46.2) & 87 (56.5) & 0.088 & \\
\hline
spiders = 1 (\%) & 45 (28.5) & 45 (29.2) & 0.985 & \\
\hline
edema (\%) &  &  & 0.877 & \\
\hline
0 & 132 (83.5) & 131 (85.1) &  & \\
\hline
0.5 & 16 (10.1) & 13 (8.4) &  & \\
\hline
1 & 10 (6.3) & 10 (6.5) &  & \\
\hline
bili (mean (sd)) & 2.87 (3.63) & 3.65 (5.28) & 0.131 & \\
\hline
chol (mean (sd)) & 365.01 (209.54) & 373.88 (252.48) & 0.748 & \\
\hline
albumin (mean (sd)) & 3.52 (0.44) & 3.52 (0.40) & 0.874 & \\
\hline
copper (mean (sd)) & 97.64 (90.59) & 97.65 (80.49) & 0.999 & \\
\hline
alk.phos (mean (sd)) & 2021.30 (2183.44) & 1943.01 (2101.69) & 0.747 & \\
\hline
ast (mean (sd)) & 120.21 (54.52) & 124.97 (58.93) & 0.460 & \\
\hline
trig (mean (sd)) & 124.14 (71.54) & 125.25 (58.52) & 0.886 & \\
\hline
platelet (mean (sd)) & 258.75 (100.32) & 265.20 (90.73) & 0.555 & \\
\hline
protime (mean (sd)) & 10.65 (0.85) & 10.80 (1.14) & 0.197 & \\
\hline
stage (\%) &  &  & 0.201 & \\
\hline
1 & 12 (7.6) & 4 (2.6) &  & \\
\hline
2 & 35 (22.2) & 32 (20.8) &  & \\
\hline
3 & 56 (35.4) & 64 (41.6) &  & \\
\hline
4 & 55 (34.8) & 54 (35.1) &  & \\
\hline
\end{tabular}

【讨论】:

  • 非常感谢!我在我的数据上进行了尝试,它似乎给出了我需要的东西:-) 与此同时,我编写了一个长且不灵活的函数,它给出了大致相同的结果......
  • 不确定名称是否已更改。但是现在没有“tableOne”包(在 CRAN 上)——它是“tableone”包。 cran.r-project.org/package=tableone
  • 我不知道这是否只是一个错误,或者是否发生了某些变化,但我已将其更改为 tableone,它似乎可以工作。
【解决方案2】:

这增加了 G.Grothendieck 的答案 - 现在有 kableExtra 包,它为布局表格提供了强大的功能,特别是主题。

将不再有水平和垂直规则的普通乳胶输出。

see this vignette for all options

library(tableone)
library(kableExtra)

# directly with a the tableone wrapper for the kable function
kableone(tableOne, booktabs = TRUE, format = "latex")

# or, to give more flexibility for the tableOne object, print first 
# E.g., if you want to use labels for your rows. 
p <- print(tableOne)
kbl(p, booktabs = TRUE, format = "latex")

输出

\begin{tabular}[t]{lllll}
\toprule
& 1 & 2 & p & test\\
\midrule
n & 158 & 154 &  & \\
time (mean (SD)) & 2015.62 (1094.12) & 1996.86 (1155.93) & 0.883 & \\
status (\%) &  &  & 0.894 & \\
0 & 83 (52.5) & 85 (55.2) &  & \\
1 & 10 ( 6.3) & 9 ( 5.8) &  & \\
\addlinespace
2 & 65 (41.1) & 60 (39.0) &  & \\
age (mean (SD)) & 51.42 (11.01) & 48.58 (9.96) & 0.018 & \\
sex = f (\%) & 137 (86.7) & 139 (90.3) & 0.421 & \\
ascites = 1 (\%) & 14 ( 8.9) & 10 ( 6.5) & 0.567 & \\
hepato = 1 (\%) & 73 (46.2) & 87 (56.5) & 0.088 & \\
\addlinespace
spiders = 1 (\%) & 45 (28.5) & 45 (29.2) & 0.985 & \\
edema (\%) &  &  & 0.877 & \\
0 & 132 (83.5) & 131 (85.1) &  & \\
0.5 & 16 (10.1) & 13 ( 8.4) &  & \\
1 & 10 ( 6.3) & 10 ( 6.5) &  & \\
\addlinespace
bili (mean (SD)) & 2.87 (3.63) & 3.65 (5.28) & 0.131 & \\
chol (mean (SD)) & 365.01 (209.54) & 373.88 (252.48) & 0.748 & \\
albumin (mean (SD)) & 3.52 (0.44) & 3.52 (0.40) & 0.874 & \\
copper (mean (SD)) & 97.64 (90.59) & 97.65 (80.49) & 0.999 & \\
alk.phos (mean (SD)) & 2021.30 (2183.44) & 1943.01 (2101.69) & 0.747 & \\
\addlinespace
ast (mean (SD)) & 120.21 (54.52) & 124.97 (58.93) & 0.460 & \\
trig (mean (SD)) & 124.14 (71.54) & 125.25 (58.52) & 0.886 & \\
platelet (mean (SD)) & 258.75 (100.32) & 265.20 (90.73) & 0.555 & \\
protime (mean (SD)) & 10.65 (0.85) & 10.80 (1.14) & 0.197 & \\
stage (\%) &  &  & 0.201 & \\
\addlinespace
1 & 12 ( 7.6) & 4 ( 2.6) &  & \\
2 & 35 (22.2) & 32 (20.8) &  & \\
3 & 56 (35.4) & 64 (41.6) &  & \\
4 & 55 (34.8) & 54 (35.1) &  & \\
\bottomrule
\end{tabular}

【讨论】:

    猜你喜欢
    • 2011-07-24
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    相关资源
    最近更新 更多