R:Select 仅值大于特定值的行映射到值为是或否的另一列

R: Select only Rows where value greater than a certain value and Mapped to another column where value is Yes or No

我有一个数据框

df:
   Age   Answer
   25      No
   51      No
   45      Yes
   49      Yes
   25      Yes
   60      Yes

我想知道 >= 40 和回答 Yes 的人的年龄 所以

df:
   Age
   45
   49
   60

事实证明这很容易。

x = df[df$Answer == "Yes"]
x = df[df$Age >= 40]
x$Age

我们可以使用subset

> subset(df, Age >=40 & Answer == "Yes")
  Age Answer
3  45    Yes
4  49    Yes
6  60    Yes

您还可以使用 dplyr::filter 过滤 Age >= 40Answer == "Yes",然后 select Agedplyr::select:

Age <- c(25, 51, 45, 49, 25, 60)
Answer <- c(rep("No", 2), rep("Yes", 4))
df <- data.frame(Age, Answer)

library(dplyr)

df2 <- df %>%
  filter(Age >= 40, Answer == "Yes") %>%
  select(Age)

df2

  Age
1  45
2  49
3  60