如何在R中移除UCBAdmissions结果的Rejected行,仅展示Admitted比例?
解决方法
有两种简单方式可以只保留Admitted的比例数据:
方法一:计算比例时直接筛选Admitted
在计算比例阶段就提取Admitted对应的部分,再生成ftable,避免后续筛选步骤:
# 按Gender和Dept分组,仅计算Admitted的比例并格式化 adm_proportions <- round(proportions(UCBAdmissions, c(2, 3))["Admitted", , ] * 100, 1) # 生成仅含Admitted的交叉表 ftable(adm_proportions, row.vars = c(1, 2))
方法二:对已生成的ftable进行行筛选
如果已经得到包含Rejected的ftable,可直接通过行名筛选移除Rejected行:
# 先生成原交叉表 full_tab <- ftable(round(proportions(UCBAdmissions,c(2,3))*100, 1),row.vars=c(2, 1),col.vars=3) # 筛选掉Rejected对应的行 adm_tab <- full_tab[!grepl("Rejected", rownames(full_tab)), ] # 查看结果 adm_tab
原理说明
- UCBAdmissions是三维数组,维度依次为
Admit、Gender、Dept,用["Admitted", , ]可直接提取Admit维度下的Admitted子集 - ftable对象本质是带行名的表格,通过
rownames()获取行名后,用逻辑判断即可筛选目标行
内容的提问来源于stack exchange,提问作者Jeonghun Lee
相关产品推荐
相关产品推荐

