2010-07-28 49 views
3

刚开始与R并试图找出什么适合我的需求,当涉及到创建“汇总表”。我习惯于SPSS中的自定义表格,而包gmodels中的CrossTable函数几乎可以让我几乎找到需要的地方;更不用说很容易导航刚刚开始在R的人。Hmisc表格创建

这就是说,似乎Hmisc表格非常擅长创建各种汇总和导出到LaTex(最终我需要做什么)。

我的问题是:1)您是否可以在Hmsic页面中轻松创建下表? 2)如果是这样,我可以交互变量(列中的2)?最后3)我可以访问显着性检验的p值(卡方)。

由于提前,

布洛克

Cell Contents 
|-------------------------| 
|     Count | 
|    Row Percent | 
|   Column Percent | 
|-------------------------| 

Total Observations in Table: 524 

      | asq[, 23] 
    asq[, 4] |  1 |  2 |  3 |  4 |  5 | Row Total | 
-------------|-----------|-----------|-----------|-----------|-----------|-----------| 
      0 |  76 |  54 |  93 |  46 |  54 |  323 | 
      | 23.529% | 16.718% | 28.793% | 14.241% | 16.718% | 61.641% | 
      | 54.286% | 56.250% | 63.265% | 63.889% | 78.261% |   | 
-------------|-----------|-----------|-----------|-----------|-----------|-----------| 
      1 |  64 |  42 |  54 |  26 |  15 |  201 | 
      | 31.841% | 20.896% | 26.866% | 12.935% | 7.463% | 38.359% | 
      | 45.714% | 43.750% | 36.735% | 36.111% | 21.739% |   | 
-------------|-----------|-----------|-----------|-----------|-----------|-----------| 
Column Total |  140 |  96 |  147 |  72 |  69 |  524 | 
      | 26.718% | 18.321% | 28.053% | 13.740% | 13.168% |   | 
-------------|-----------|-----------|-----------|-----------|-----------|-----------| 

回答

3

如果您是从SPSS来了,你可能有兴趣在包装推定器(http://www.deducer.org)。它具有偶然性表函数:

> library(Deducer) 
> data(tips) 
> tables<-contingency.tables(
+ row.vars=d(smoker), 
+ col.vars=d(day),data=tips) 
> tables<-add.chi.squared(tables) 
> print(tables,prop.r=T,prop.c=T,prop.t=F) 
================================================================================================================ 

       ==================================================================================    
            ========== Table: smoker by day ==========         
         | day 
       smoker |  Fri |  Sat |  Sun |  Thur | Row Total | 
-----------------------|-----------|-----------|-----------|-----------|-----------| 
      No Count |  4 |  45 |  57 |  45 |  151 | 
       Row % | 2.649% | 29.801% | 37.748% | 29.801% | 61.885% | 
       Column % | 21.053% | 51.724% | 75.000% | 72.581% |   | 
-----------------------|-----------|-----------|-----------|-----------|-----------| 
     Yes Count |  15 |  42 |  19 |  17 |  93 | 
       Row % | 16.129% | 45.161% | 20.430% | 18.280% | 38.115% | 
       Column % | 78.947% | 48.276% | 25.000% | 27.419% |   | 
-----------------------|-----------|-----------|-----------|-----------|-----------| 
      Column Total |  19 |  87 |  76 |  62 |  244 | 
       Column % | 7.787% | 35.656% | 31.148% | 25.410% |   | 



      Large Sample              
     Test Statistic DF p-value | Effect Size est. Lower (%) Upper (%) 
Chi Squared 25.787  3 <0.001 | Cramer's V 0.325 0.183 (2.5) 0.44 (97.5) 
----------- 





================================================================================================================ 

你可以使用xtable包计数和测试,以乳胶或HTML:

> library(xtable) 
> xtable(drop(extract.counts(tables)[[1]])) 
> test <- contin.tests.to.table((tables[[1]]$tests)) 
> xtable(test) 
+0

这是伟大的 - 我不知道这个包。我真的很感兴趣的是模仿自定义表格,它允许我交互变量(列和行)以及简单地创建具有多个变量的表格,并找出创建报表的最佳方式 - 看起来像LaTeX – Btibert3 2010-07-28 18:54:07

4

的gmodels包已经是一个叫做CrossTable功能,非常漂亮适用于那些用于SPSS和SAS输出的用户。试试下面这个例子:

library(gmodels) # run install.packages("gmodels") if you haven't installed the package yet 
x <- sample(c("up", "down"), 100, replace = TRUE) 
y <- sample(c("left", "right"), 100, replace = TRUE) 
CrossTable(x, y, format = "SPSS") 

这应该为您提供一个输出,就像你对你的问题,很SPSS-Y显示的一个。 :)

+0

应该是'CrossTable (x,y,format =“SPSS”)'? – Stedy 2014-09-05 20:58:22

+0

@Stedy,我认为你是对的。我不确定当时的想法。感谢您的提示,我会相应地编辑答案。 – 2014-09-06 13:05:54