索引列时如何使用向量?

时间:2019-05-26 08:08:53

标签: r

所以基本上,我有一个向量:

请注意,泰坦尼克号是参加泰坦尼克号活动的人的数据框。

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岁以上第一类女性幸存者的价值。

我是菜鸟。任何帮助将不胜感激。谢谢。

2 个答案:

答案 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岁以上第一类女性幸存者的数量。如果需要这些条目,请从nrowfilter函数中删除subset

答案 1 :(得分:0)

带有data.table

的选项
library(data.table)
nrow(setDT(thetitanic)[Survived == 1 & Sex == "Female" & Pclass == 1 & Age >= 18])