R 当条件满足时,如何删除特定行?
如果列R 当条件满足时,如何删除特定行?,r,dataframe,R,Dataframe,如果列EP标记为1,则当它满足两列的条件时,我尝试删除/过滤掉某些特定行。具体代码是什么? 例如:在数据框df\u NC中,当列“人口类型”(二进制类型)等于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 )) df_ep%突变(ep=case_时(
EP
标记为1
,则当它满足两列的条件时,我尝试删除/过滤掉某些特定行。具体代码是什么?
例如:在数据框df\u NC
中,当列“人口类型”(二进制类型)等于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
))
df_ep%突变(ep=case_时(
df_NC$Population_Type==1&df_NC$NC==0~1,
真~0
))
根据您的代码,我假设您使用的是dplyr
软件包。有几个错误
- 您不需要在
函数中使用基本符号,如dplyr
,只需使用变量的名称即可df_NC$NC
- 如果要筛选其中一个值(
/0
),我看不到创建列FALSE
的原因EP
df\u NC%>%
突变(EC=if\u-else(总体类型==1&NC==0,1,0))%>%
过滤器(EC==1)
#或者更短,考虑到我的第二点
df_NC%>%
过滤器(总体类型==1,NC==0)#等效于EC==1
另外,尝试使用布尔值(
TRUE
/FALSE
)而不是整数1
/0
)来处理“二进制”数据类型。在这种情况下,尝试df\u NC[df\u NC$Population\u type!=1&df\u NC$NC!=0,]
,它删除了所有的rowsthanks@Gabriel Silva,创建列EP的原因是我将在以后的分析中使用标记的值