我有这个数据集:
Admin
我制作了一个变量,只存储library(earth)
data(etitanic)
数据中的存活率和性别:
etitanic
现在我想找到男性和女性的存活率。我还没有及时使用过R。在C ++中,我只想写一个for循环来计算我们有多少次数字1(幸存)给定的字符串是"男性"。
我如何在R中完成此任务?我尝试使用
Survival_MF <- etitanic[2:3]
我得到了这个:
prop.table(table(etitanic$sex, etitanic$survived))
这看起来是否正确?
答案 0 :(得分:2)
你可以用几种方法做 - 但是它们都不应该涉及循环。我使用dplyr::count()
:
library(dplyr)
etitanic %>%
count(sex,survived)
sex survived n
<fct> <int> <int>
1 female 0 96
2 female 1 292
3 male 0 523
4 male 1 135
您可以按性别分组以按性别计算比例:
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
或者只是省略对总人数比例的分组。
如果您想要使用数据框和#34;,那么值得学习dplyr
。
答案 1 :(得分:0)
使用Program Files\Microsoft VS Code\bin
根据subset
和sex == "male"
过滤条目:
survived == 1
或者作为总数的一小部分:
nrow(subset(etitanic, sex == "male" & survived == 1))
#[1] 135