我有一个这样的数据集:
ID | 金额 | 会员卡 |
---|---|---|
345890是 | ||
345791 | 678921 | 是|
341750 | 87023 | 否 |
如果ID
是c(341862, 345791)
之一,则选择一行;如果Amount
小于25000,则选择该行。
我们可以在R-基础上使用subset
res <- subset(df, ID %in% c(341862, 345791) | Amount <= 25000)
res
# ID Amount MemberCard
#1 341862 400238 YES
#2 345791 678921 YES
#3 345716 12987 YES
或使用dplyr::filter
-
library(dplyr)
df %>% filter(ID %in% c(341862, 345791) | Amount <= 25000)
如果您只希望Amount > 250000
的观测值为空,则可以使用replace()
:
library(tidyverse)
df_new <- df %>%
mutate(Amount = replace(Amount, Amount >250000, NA))
如果您想将结果应用于两列,您可以将其添加到mutate()
:
df_new <- df %>%
mutate(Amount = replace(Amount, Amount > 250000, NA),
MemberCard = replace(Amount, Amount > 250000, NA))
这将保留ID,但如果满足条件,则删除所有其他值。希望这能有所帮助。😉
我们也可以使用
subset(df, ID == 341862| ID == 345791|Amount <= 25000)