如何在 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 会给出基于性别的百分比。
输入
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 会给出基于性别的百分比。