R table xtab:偶然事件 Table 以排除因素为条件

R table xtab: Contingency Table conditional on exclusion factors

假设我想为移动设备和性别创建一个应急方案 table 并具有以下数据集:

df<-data.frame(read.table(header = TRUE, text = 
"Age    Gender  Mobile
13  Male    1
14  Female  1
18  Female  1
13  Male    1
13  Female  1
14  Female  0
16  Male    1
16  Female  0
16  Male    0
20  Male    0
14  Male    0
13  Female  0
25  Male    1
13  Female  0
24  Female  0"))

我会按如下方式处理:

df$Gender<-factor(df$Gender)
df$Mobile<-factor(df$Mobile)
prop.table(xtabs(~Mobile+Gender, df))

它工作正常。现在,假设我想为 18 岁以上的样本子集编译性别和移动的 table。你会怎么做?我尝试了以下无济于事:

prop.table(xtabs(~Mobile+Gender, df[df$Age>18]))

prop.table(xtabs(~Mobile+Gender[df$Age>18], df))

prop.table(xtabs(~Mobile+Gender, df))[df$Age>18]

有什么想法吗?谢谢!

我们需要 subset Age > 18 的行,如果我们需要在子集化后删除未使用的级别,请使用 droplevels,使用 [= 得到 table 14=] 并转换为比例。

prop.table(xtabs(~Mobile+Gender, droplevels(df[df$Age>18,])))

只需在您的第一次尝试中添加 , 也可以解决问题:

> prop.table(xtabs(~ Mobile + Gender, df[df$Age > 18,]))
      Gender
Mobile       Female         Male
     0 0.3333333333 0.3333333333
     1 0.0000000000 0.3333333333

没有出现在table中的因素不需要降低水平:

> prop.table(xtabs( ~ Mobile + Gender, droplevels(df[df$Age > 18,])))
      Gender
Mobile       Female         Male
     0 0.3333333333 0.3333333333
     1 0.0000000000 0.3333333333