r - 使用 Hmisc 包 (R) 生成类似输出的 proc 报告 (SAS)?

标签 r hmisc

我一直在尝试使用 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/

相关文章:

R - describe() 输出到数据框

r - 如何使用 R lattice reshape 堆叠条形图的数据

R应用错误: 'X' must have named dimnames

r - 如何让 cut2 使用逗号?

r - hmisc 包更改原始代码从 0 :1 to 1:2

r - loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) : there is no package called 'stringi' 中的错误

r - R-将多图保存到文件

r - R 中的烤宽面条图

r - 在 Shiny 的应用程序中包含自定义 css

r - 从 Hmisc 包中的 latex() 创建的表水平左对齐,而不是在 pdf 文档中水平居中