首页 > 解决方案 > 索引列时如何使用向量?

问题描述

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

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

femalesurvivors_1 <- thetitanic[(thetitanic$Sex=="female") & (thetitanic$Survived==1) & (thetitanic$PClass=="1st"),]

这显示了一级的女性幸存者。但是,现在我只想要18岁以上的女性幸存者。所以:

我也想索引(thetitanic$Sex>=18)

我一直在尝试某些形式的代码,但我不断收到错误。 x <- thetitanic[(femalesurvivors_1) & (thetitanic$Age>=18)]

错误显示: 1: In Ops.factor(left, right) : '&' 对因子没有意义

我可以在做的时候通过一个向量吗?还是我必须制作一个新的向量并重复代码?

我正在尝试返回 18 岁以上的女性幸存者的价值。

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

标签: r

解决方案


您可以创建条件的逻辑向量并sum接管它。

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

library(dplyr)

thetitanic %>%
  filter(Survived == 1 & Sex == "female" & Pclass == 1 & Age >= 18) %>%
   nrow

这将返回 18 岁以上的一等女性幸存者的数量。如果您想要这些条目,请nrowfiltersubset函数中删除。


推荐阅读