我刚开始使用 R,我的数据如下所示:
Fruit Consumption
Apple High
Apple High
Orange High
Orange Low
Nut Low
Nut Low
我想删除那些混合消费(橙色)的人。我首先尝试使用以下代码识别橙色,然后再将其删除。
df1 <- df %>% group_by(Fruit) %>% filter(Consumption =="High" & Consumption =="Low")
我不知道出了什么问题,但 R 返回零输出。我也尝试从“AND”更改为“OR”,但这次我得到了原始数据。请帮帮我!
非常感谢!
答案 0 :(得分:1)
您需要在 any
语句中包裹 filter
以删除多次食用的水果。
library(dplyr)
df %>%
group_by(Fruit) %>%
filter(!(any(Consumption =="High") & any(Consumption =="Low")))
#Or
#filter(!all(c('High', 'Low') %in% Consumption))
您还可以通过计算唯一 Consumption
值的数量来检测混合消费。
df %>%
group_by(Fruit) %>%
filter(n_distinct(Consumption) == 1)