我想生成一个LaTeX表,其中包含两个其他变量的不同值的变量的平均值和标准偏差。这是一个数字网格,每个组合具有两个值,标准偏差低于括号中的平均值。理想情况下,我还将分别沿着表格的底部和右侧报告总计(即边际)。
对于mtcars数据:
library(datasets)
library(data.table)
DT<-data.table(mtcars)
DT[, list(mean_mpg = mean(mpg), sd_mpg=sd(mpg)),by=.(gear,carb)]
这将产生必要的数据:
gear carb mean_mpg sd_mpg
1: 4 4 19.75000 1.552417
2: 4 1 29.10000 5.061620
3: 3 1 20.33333 1.934770
4: 3 2 17.15000 2.092048
5: 3 4 12.62000 2.089737
6: 4 2 24.75000 3.961060
7: 3 3 16.30000 1.053565
8: 5 2 28.20000 3.111270
9: 5 4 15.80000 NA
10: 5 6 19.70000 NA
11: 5 8 15.00000 NA
但是,我想获取以下形式的输出:
\begin{tabular}{l*4}
\multicolumn{4}{c}{Gear} \\
Carb & 3 & 4 & 5 \\
1 & 20.3 & 29.1 & \\
& (1.9) & (5.1) & \\
2 & 17.2 & 24.8 & 28.2 \\
& (2.1) & (4.0) & (3.1) \\
4 & 12.6 & 19.8 & 15.8 \\
& (2.1) & (1.6) & (.) \\
6 & & & 19.7 \\
& & & (.) \\
8 & & & 15 \\
& & & (.) \\
\end{tabular}
我已经尝试了Stargazr,qwraps2和报表工具,但它们似乎都无法满足我的需求。实际数字很容易获得,如此处所述:How to get summary statistics by group,但鉴于我需要手动生成许多此类表来重新排列它们。请注意,与这个问题Generate Cross-table in R with mean and SD
不同,手段不是重点,而是重点