如何在 R 中按类别对百分比进行分类

How to classify percentages by category in R

输入

titanic <- read.csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.csv")
names(titanic)
tbl <- table(titanic$survived)
cbind(tbl, prop.table(tbl))

期望输出:按性别分类的生存百分比,例如。 titanic$sex.

我的尝试:

tapply(titanic$survived, titanic$sex, table)

这让我按原始数字对生存率进行了性别细分;

$female
0   1 
127 339 

$male
 0   1 
682 161  

但是如何按百分比进行细分?即,所需的输出:

$female
0   1 
.27 .72 

$male
0   1 
.81 .19 

要生成您要求的特定表格:

lapply(split(titanic,titanic$sex),function(x)prop.table(table(x$survived)))
# $female
# 
#         0         1 
# 0.2725322 0.7274678 
# 
# $male
# 
#         0         1 
# 0.8090154 0.1909846 

您正在寻找 prop.table 函数

> prop.table(table(titanic$survived, titanic$sex), 2)

       female      male
  0 0.2725322 0.8090154
  1 0.7274678 0.1909846

传入 1 会给出基于性别的百分比。