【发布时间】:2019-01-29 12:46:32
【问题描述】:
我正在尝试根据来自两个数据库的信息创建一个漂亮的表。
让我们以此为例:
row.namess <- c( "s.size", "mean", "sd", "median", "minimum", "maximum")
AVAL1 <- c(250, 7.60, 0.50, 8.30, 5.30, 10.70) ## outcome
AVAL2 <- c(254, 7.80, 0.68, 7.89, 5.30, 10.60) ## outcome
AGE1 <- c(254, 59.72, 9.08, 59.71, 29.00, 83.00) ## age
AGE2 <- c(254, 55.72, 10.01, 62.71, 31.00, 85.00) ## outcome
(treatA <- data.frame(AVAL1, AGE1)); rownames(treatA ) <- row.namess
(treatB <- data.frame(AVAL2, AGE2)); rownames(treatB ) <- row.namess
> treatA
AVAL1 AGE1
s.size 250.0 254.00
mean 7.6 59.72
sd 0.5 9.08
median 8.3 59.71
minimum 5.3 29.00
maximum 10.7 83.00
> treatB
AVAL2 AGE2
s.size 254.00 254.00
mean 7.80 55.72
sd 0.68 10.01
median 7.89 62.71
minimum 5.30 31.00
maximum 10.60 85.00
我的目标是找到一种方法来获得类似于此的漂亮表格(例如,作为图像或表格,我可以轻松地在 Word 中复制和使用):
Treat A Treat B
Number of Subjects xxxx xxxx
Age (yrs)
N xxxx xxxx
Mean (SD) xx.x (xx.x) xx.x (xx.x)
Median xx.x xx.x
Min ; Max xx.x ; xxx.x xx.x ; xxx.x
Aval (%)
N xxxx xxxx
Mean (SD) xx.x (xx.x) xx.x (xx.x)
Median xx.x xx.x
Min ; Max xx.x ; xxx.x xx.x ; xxx.x
每个列名对应一个特定的输出:
s.size - N
均值 - 均值
标清 - 标清
中位数 - 中位数
最小值 - 最小值
最大值 - 最大值
有人知道这个问题的解决方案吗?
【问题讨论】:
-
到目前为止你尝试了什么?
-
knitr 和 expss 包,但我无法获得这么好的输出
-
我认为有一个名为
broom的包可以整理summary和lm等函数的输出 -
但据我所知,它可以应用于模型输出和摘要。在这种情况下,我只有带有值的数据框(我可以绘制的输出)。我想不出一种方法来得到上面的输出
-
您可能从 knitr 和其他软件包中获得较差输出的原因之一是您使用了行名称。在 R 的数据框中,变量是列,行是观察值或值。