首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xtabs中的边距合计

xtabs中的边距合计
EN

Stack Overflow用户
提问于 2010-04-02 21:06:16
回答 5查看 6.5K关注 0票数 7

如果您有两个交叉分类变量,则可以使用rowSumscolSumsxtabs输出上生成边际合计。但是,如果你有3个分类变量(即每个子表中的毛利总和),如何做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-01-25 20:28:57

Aniko在评论中提到了这一点,但从未作为答案提供。

我独立发现了这一点,然后注意到它在这里的评论中,所以感谢Aniko最先得到它。

addmargins就是答案:

对于给定表,可以指定将哪些分类因子扩展一个或多个级别,以保持要计算的边距。例如,可以在第一维上形成和和均值,在第二维上形成中值。然后,结果表将有两个额外的级别用于第一个维度,一个额外的级别用于第二个维度。默认值是对表中的所有页边距求和。其他可能性可能会给出取决于计算边距的顺序的结果。这在函数的打印输出中进行了标记。

票数 11
EN

Stack Overflow用户

发布于 2010-04-02 21:41:54

一般的方法是使用apply函数,但对于合计,使用margin.table函数可能更方便:

代码语言:javascript
复制
#create 3 factors
a <- gl(2,4, length=20)
b <- gl(3,2, length=20)
d <- gl(4,2, length=20)
# table
tt <- xtabs(~a+b+d)

# marginal sums
margin.table(tt, 1)
apply(tt, 1, sum)  #same answer

#multi-way margins
margin.table(tt, 1:2)
apply(tt, 1:2, sum)  #same answer
票数 4
EN

Stack Overflow用户

发布于 2010-04-03 00:52:15

如果您没有绑定到xtabs,Deducer包有一些很好的偶然表函数:

代码语言:javascript
复制
> a <- gl(2,4, length=20)
> b <- gl(3,2, length=20)
> d <- rnorm(20)>0
> dat <- data.frame(a,b,d)
> tables<-contingency.tables(
+ row.vars=a,
+ col.vars=b,
+ stratum.var=d,data=dat)
> tables
================================================================================

               ==================================================               
                      ========== Table: a by b ==========                      

                       | -- Stratum = FALSE --
                       | b 
                     a |        1  |        2  |        3  | Row Total | 
-----------------------|-----------|-----------|-----------|-----------|
           1  Count    |        2  |        2  |        1  |        5  | 
              Row %    |   40.000% |   40.000% |   20.000% |   55.556% | 
              Column % |   40.000% |  100.000% |   50.000% |           | 
              Total %  |   22.222% |   22.222% |   11.111% |           | 
-----------------------|-----------|-----------|-----------|-----------|
           2  Count    |        3  |        0  |        1  |        4  | 
              Row %    |   75.000% |    0.000% |   25.000% |   44.444% | 
              Column % |   60.000% |    0.000% |   50.000% |           | 
              Total %  |   33.333% |    0.000% |   11.111% |           | 
-----------------------|-----------|-----------|-----------|-----------|
          Column Total |        5  |        2  |        2  |        9  | 
              Column % |   55.556% |   22.222% |   22.222% |           | 

                       | -- Stratum = TRUE --
                       | b 
                     a |        1  |        2  |        3  | Row Total | 
-----------------------|-----------|-----------|-----------|-----------|
           1  Count    |        2  |        2  |        3  |        7  | 
              Row %    |   28.571% |   28.571% |   42.857% |   63.636% | 
              Column % |   66.667% |   50.000% |   75.000% |           | 
              Total %  |   18.182% |   18.182% |   27.273% |           | 
-----------------------|-----------|-----------|-----------|-----------|
           2  Count    |        1  |        2  |        1  |        4  | 
              Row %    |   25.000% |   50.000% |   25.000% |   36.364% | 
              Column % |   33.333% |   50.000% |   25.000% |           | 
              Total %  |    9.091% |   18.182% |    9.091% |           | 
-----------------------|-----------|-----------|-----------|-----------|
          Column Total |        3  |        4  |        4  |       11  | 
              Column % |   27.273% |   36.364% |   36.364% |           | 


================================================================================
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2566766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档