如果您有两个交叉分类变量,则可以使用rowSums和colSums在xtabs输出上生成边际合计。但是,如果你有3个分类变量(即每个子表中的毛利总和),如何做到这一点?
发布于 2017-01-25 20:28:57
Aniko在评论中提到了这一点,但从未作为答案提供。
我独立发现了这一点,然后注意到它在这里的评论中,所以感谢Aniko最先得到它。
addmargins就是答案:
对于给定表,可以指定将哪些分类因子扩展一个或多个级别,以保持要计算的边距。例如,可以在第一维上形成和和均值,在第二维上形成中值。然后,结果表将有两个额外的级别用于第一个维度,一个额外的级别用于第二个维度。默认值是对表中的所有页边距求和。其他可能性可能会给出取决于计算边距的顺序的结果。这在函数的打印输出中进行了标记。
发布于 2010-04-02 21:41:54
一般的方法是使用apply函数,但对于合计,使用margin.table函数可能更方便:
#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发布于 2010-04-03 00:52:15
如果您没有绑定到xtabs,Deducer包有一些很好的偶然表函数:
> 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% | |
================================================================================https://stackoverflow.com/questions/2566766
复制相似问题