我想知道是否有一种直接的方法可以在三向平面(!)列联表中获得嵌套的相对频率。
N    <- 10
(sex <- factor(sample(c("f", "m"), N, replace=TRUE)))
(work <- factor(sample(c("home", "office"), N, replace=TRUE)))
(satisfaction <- factor(sample(c("excellent", "ok","bad"), N, replace=TRUE)))
ftable(work, sex, satisfaction, row.vars=c("sex", "satisfaction"))
此代码产生以下输出:
                work home office
sex satisfaction                 
f   bad                  1      1
    excellent            0      1
    ok                   1      1
m   bad                  1      0
    excellent            1      0
    ok                   1      2
我想得到的是
                work home office
sex satisfaction                 
f   bad                  0.2      0.2
    excellent            0        0.2
    ok                   0.2      0.2
m   bad                  0.2      0
    excellent            0.2      0
    ok                   0.2      0.4
我知道我可以用 prop.table 计算表格,但还没有弄清楚如何将它与 ftable 生成的平面列联表结合起来。当然有一种方法可以分别计算每个性别组的相对频率,但我对更直接的方法感兴趣。到目前为止,我还没有找到任何方法如何将相对频率放入平面列联表中。
注意:在此示例中,男性和女性组具有相同的大小 (5);但是,我正在寻找的解决方案应该足够灵活,以便组也可以有不同的大小。
非常感谢!