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)做同样的事情吗?如果您想回答另一个问题,请参见此处: