首页 > 解决方案 > 删除变量中的混合数据

问题描述

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

提前非常感谢!

标签: r

解决方案


您需要包装anyfilter语句中以删除多次食用的水果。

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)

推荐阅读