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

时间:2015-09-02 18:01:48

标签: r percentage tapply

输入

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 

2 个答案:

答案 0 :(得分:2)

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

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 

答案 1 :(得分:1)

您正在寻找prop.table功能

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

       female      male
  0 0.2725322 0.8090154
  1 0.7274678 0.1909846

传入1表示基于性别的百分比。