删除变量中的混合数据

时间:2020-12-21 01:59:00

标签: r

我刚开始使用 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”,但这次我得到了原始数据。请帮帮我!

非常感谢!

1 个答案:

答案 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)
相关问题