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
假设我想为移动设备和性别创建一个应急方案 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