满足条件时如何删除特定行?

时间:2019-11-12 15:30:08

标签: r dataframe

如果列EP未被标记为1,则我尝试删除/过滤出满足两列条件的某些特定行。具体的代码是什么? 例如:在数据帧df_NC中,当列“ Population_type”(二进制类型)等于1并且列NC(二进制类型)等于0时删除满足此条件时的行,否则将EP标记为1

df_ep <- df_NC %>% mutate(EP= case_when(
 df_NC$Population_Type == 1 & df_NC$NC == 0 ~ 1,
 TRUE ~ 0
))

1 个答案:

答案 0 :(得分:0)

根据您的代码,我假设您使用的是dplyr软件包。那里有几个错误。

  • 您不需要在df_NC$NC函数中使用像dplyr这样的基本符号,只需使用变量的名称即可。

  • 如果您要过滤其中一个值(EP / 0),则看不到创建列FALSE的原因。

df_NC %>%
  mutate(EC = if_else(Population_Type == 1 & NC == 0, 1, 0)) %>%
  filter(EC == 1)

# Or shorter, considering my second point
df_NC %>%
  filter(Population_Type == 1, NC == 0) # Equivalent to EC == 1

此外,尝试使用布尔(TRUE / FALSE)而不是整数1 / 0来处理“二进制”数据类型。