R表xtab:基于排除因子的列联表
假设我想为手机和性别创建一个列联表,并设置以下数据集:R表xtab:基于排除因子的列联表,r,crosstab,R,Crosstab,假设我想为手机和性别创建一个列联表,并设置以下数据集: 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 Mal
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"))
或
或
有什么想法吗?谢谢 我们需要
对年龄>18的行进行子集
,如果我们需要在子集设置后删除未使用的级别,请使用液滴级别
,使用xtabs
获取表格并转换成比例
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
无需降低未出现在表中的因素水平:
> prop.table(xtabs( ~ Mobile + Gender, droplevels(df[df$Age > 18,])))
Gender
Mobile Female Male
0 0.3333333333 0.3333333333
1 0.0000000000 0.3333333333
! 再说一次,你是对的,伙计!感谢您的更正和快速回复!干杯
prop.table(xtabs(~Mobile+Gender, df))[df$Age>18]
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
> prop.table(xtabs( ~ Mobile + Gender, droplevels(df[df$Age > 18,])))
Gender
Mobile Female Male
0 0.3333333333 0.3333333333
1 0.0000000000 0.3333333333