所以基本上,我有一个向量:
请注意,泰坦尼克号是参加泰坦尼克号活动的人的数据框。
femalesurvivors_1 <- thetitanic[(thetitanic$Sex=="female") & (thetitanic$Survived==1) & (thetitanic$PClass=="1st"),]
显示一等女性幸存者。但是,现在我只希望18岁以上的一等女性幸存者。所以:
我还要索引(thetitanic$Sex>=18)
我一直在尝试某些形式的代码,但我一直遇到错误。
x <- thetitanic[(femalesurvivors_1) & (thetitanic$Age>=18)]
错误显示:1:在Ops.factor(左,右)中:'&'对因子没有意义
我可以通过矢量进行传递吗?还是我必须制作一个新的向量并重复代码?
我正在尝试归还18岁以上第一类女性幸存者的价值。
我是菜鸟。任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
您可以创建条件的逻辑矢量并将sum(with(thetitanic,
Survived == 1 & Sex == "female" & Pclass == 1 & Age >= 18), na.rm = TRUE)
用作条件。
subset
使用nrow(subset(thetitanic, Survived == 1 & Sex == "female" & Pclass == 1 & Age >= 18))
dplyr
或者使用filter
的{{1}}
library(dplyr)
thetitanic %>%
filter(Survived == 1 & Sex == "female" & Pclass == 1 & Age >= 18) %>%
nrow
这将返回18岁以上第一类女性幸存者的数量。如果需要这些条目,请从nrow
和filter
函数中删除subset
。
答案 1 :(得分:0)
带有data.table
library(data.table)
nrow(setDT(thetitanic)[Survived == 1 & Sex == "Female" & Pclass == 1 & Age >= 18])