R 计算男性和女性的存活率
我有以下数据集:R 计算男性和女性的存活率,r,R,我有以下数据集: library(earth) data(etitanic) 我制作了一个变量,只存储了etitanic数据中的存活率和性别: Survival_MF <- etitanic[2:3] 我明白了: 0 1 female 0.0917782 0.2791587 male 0.5000000 0.1290631 这看起来正确吗?你可以用几种方法来做,但它们都不应该涉及循环。我会使用dplyr::count():
library(earth)
data(etitanic)
我制作了一个变量,只存储了etitanic
数据中的存活率和性别:
Survival_MF <- etitanic[2:3]
我明白了:
0 1
female 0.0917782 0.2791587
male 0.5000000 0.1290631
这看起来正确吗?你可以用几种方法来做,但它们都不应该涉及循环。我会使用dplyr::count():
库(dplyr)
依替坦酸%>%
计数(性别,存活)
性存活
1名女性0 96
2女1292
3男0523
4男1135
您可以按性别分组,以按性别计算比例:
etitanic %>%
count(sex,survived) %>%
group_by(sex) %>%
mutate(rate = n/sum(n)) %>%
ungroup()
sex survived n rate
<fct> <int> <int> <dbl>
1 female 0 96 0.247
2 female 1 292 0.753
3 male 0 523 0.795
4 male 1 135 0.205
etitanic%>%
计数(性别,存活率)%>%
按性别划分的组别%>%
突变(速率=n/和(n))%>%
解组()
性存活率
1女0 96 0.247
2女12920.753
3男0 523 0.795
4男11350.205
或者省略总人口比例的分组
如果你想“用数据帧做一些事情”,那么很值得学习
dplyr
你可以用几种方法来做,但它们都不应该涉及循环。我会使用dplyr::count():
库(dplyr)
依替坦酸%>%
计数(性别,存活)
性存活
1名女性0 96
2女1292
3男0523
4男1135
您可以按性别分组,以按性别计算比例:
etitanic %>%
count(sex,survived) %>%
group_by(sex) %>%
mutate(rate = n/sum(n)) %>%
ungroup()
sex survived n rate
<fct> <int> <int> <dbl>
1 female 0 96 0.247
2 female 1 292 0.753
3 male 0 523 0.795
4 male 1 135 0.205
etitanic%>%
计数(性别,存活率)%>%
按性别划分的组别%>%
突变(速率=n/和(n))%>%
解组()
性存活率
1女0 96 0.247
2女12920.753
3男0 523 0.795
4男11350.205
或者省略总人口比例的分组
如果您想“处理数据帧”,那么很值得学习
dplyr
使用subset
根据sex==“male”
和surved==1
筛选条目:
nrow(subset(etitanic, sex == "male" & survived == 1))
#[1] 135
或作为总数的一部分:
nrow(subset(etitanic, sex == "male" & survived == 1)) / nrow(etitanic)
#[1] 0.1290631
使用
subset
根据sex==“male”
和surved==1
筛选条目:
nrow(subset(etitanic, sex == "male" & survived == 1))
#[1] 135
或作为总数的一部分:
nrow(subset(etitanic, sex == "male" & survived == 1)) / nrow(etitanic)
#[1] 0.1290631
sum(Survival\u-MF[Survival\u-MF$sex==“male”,1])
起作用。由于死亡值为0,并且这不会影响列和,因此不需要根据它们是否存活进行筛选not@Punintended谢谢你,我们如何计算有多少雄性动物才能得到存活率,我们必须将总和(survival_MF[survival_MF$sex==“male”,1])除以雄性动物的数量,对吗?没错。虽然我的格式只是对你上一个问题的快速回答。neilfws的版本更简洁,更容易理解sum(Survival_-MF[Survival_-MF$sex==“male”,1])
起到了作用。由于死亡值为0,并且这不会影响列和,因此不需要根据它们是否存活进行筛选not@Punintended谢谢你,我们如何计算有多少雄性动物才能得到存活率,我们必须将总和(survival_MF[survival_MF$sex==“male”,1])除以雄性动物的数量,对吗?没错。虽然我的格式只是对你上一个问题的快速回答。neilfws的版本更干净,更易于解释。prop.table(table(etitanic$sex,etitanic$surved))@snorlaxxx Yes,它为您提供了存活/死亡的雄性/雌性分数表。条目[2,2]
与上面的“总分数”相同。除了使用库(sqldf)之外,您知道如何做同样的事情吗?如果您想回答另一个问题,请参见此处:您能帮我处理上面的后一个链接吗?prop.table(table(etitanic$sex,etitanic$surved))@SnorlLaxxx是,它为您提供了存活/死亡的雄性/雌性的分数表。条目[2,2]
与上面的“总分数”相同。你知道如何使用库(sqldf)做同样的事情吗?如果你想回答另一个问题,请看这里:你能帮我处理上面的后一个链接吗?这是什么:prop.table(table(etitanic$sex,etitanic$surved))?您知道如何使用库(sqldf)做同样的事情吗?如果您想回答另一个问题,请参见此处:道具表(table(table(etitanic$sex,etitanic$surved))?您知道如何使用库(sqldf)做同样的事情吗?如果您想回答另一个问题,请参见此处: