我一直在尝试使用 Hmisc 包来产生类似于下面的输出。
Group
Step Method G1 G2 G3 .......
s1 m1 N 45 26 17
Min 2 2 3
Max 7 6 4
Mean 3.5 4.5 2.5
Sdev 2.6 3.6 1
m2 N
Min
Max
Mean
Sdev
s2 m1 N
Min
Max
Mean
Sdev
m2 N
Min
Max
Mean
Sdev
我的原始数据如下所示。
Site Step Method Group Outcome
a1 s1 m1 g1 3.6
a1 s1 m4 g1 2.3
a2 s2 m1 g2 14
a3 s1 m3 g1 7
a3 s3 m6 g1 1
a4 s1 m1 g3 6.2
我正在尝试按步骤和方法计算每个组中所有站点结果的 n、min、mean、sdev 和 max。我使用网站作为我的唯一标识符。不是每个站点都有每一步,也不是每一步都有每一种方法,所以存在缺失值。我一直在玩 Hmisc 包,并且已经能够使用
fun=summary
计算 n、平均值、最小值和最大值。 ,但我只能针对每种方法单独执行此操作,并且它显示在一个不太漂亮的矩阵中。我知道这个包使用了 latex (我对这个完全是新手),我已经使用了
summary(....,file="data.tex")
中的选项我认为这是保存一个 .dvi 文件,我右键单击该文件并告诉它转换为 pdf,但 pdf 已全部损坏,数据位于错误的位置。我真的不知道我做错了什么,所以非常感谢任何反馈/输入。干杯。
最佳答案
tabular
tables
中的函数包被用来创建类似表的 SAS。
您可以尝试这样的操作( dat
是您的示例数据):
library(tables)
(tab1 <- tabular(Step*Method*Heading()*Outcome*((n = 1) + min + max + mean + sd) ~ Group,
data = dat))
Group
Step Method g1 g2 g3
s1 m1 n 1.0 0 1.0
min 3.6 Inf 6.2
max 3.6 -Inf 6.2
mean 3.6 NaN 6.2
sd NA NA NA
m3 n 1.0 0 0.0
min 7.0 Inf Inf
max 7.0 -Inf -Inf
mean 7.0 NaN NaN
sd NA NA NA
... ... ... ...
进一步处理数据,以 latex 为例,
latex(tab1)
创建格式良好的 latex 表格。注意:您可以像这样轻松改进表格的格式:
tabular(Step*RowFactor(Method, levelnames = c("M1", "M2", "M3", "M4"), spacing = 1)*
Heading()*Outcome*
(Format()*(N= 1) + (Min = min) + (Max = max) + (Mean = mean) +
(Sdev = sd)) ~
Factor(Group, levelnames = c("G1", "G2", "G3")),
data = dat)
也可以使用
tabular(Site*Step*...)
直接将其应用于所有站点
关于r - 使用 Hmisc 包 (R) 生成类似输出的 proc 报告 (SAS)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15191147/