dplyr按多个列筛选不工作

dplyr按多个列筛选不工作,r,filter,dplyr,R,Filter,Dplyr,但这是删除所有不等于a的类型,即使我只想删除那些a中的代码为1、3或4的类型。我做错了什么 编辑 我在评论中尝试了这种方法,但仍然不起作用 exclude.code <- c(1, 3, 4) new.df <- df %>% dplyr::filter(!code %in% exclude.code & type != "a") 只要用这个: head(df %>% dplyr::filter((!code %in% exclude.code) &

但这是删除所有不等于
a
的类型,即使我只想删除那些
a
中的代码为1、3或4的类型。我做错了什么

编辑

我在评论中尝试了这种方法,但仍然不起作用

exclude.code <- c(1, 3, 4)

new.df <- df %>% dplyr::filter(!code %in% exclude.code & type != "a")
只要用这个:

head(df %>% dplyr::filter((!code %in% exclude.code) & type != "a"))

 code type year    x
  5    b 1981 -1.0564839
  5    b 1981  1.5385139
  5    b 1981  0.5709470
  5    b 1981  0.4728047
  5    b 1981 -0.3739578
  5    b 1981  0.6338270
  • 这个
    (code%在%exclude.code中)和(type==“a”)
    为您获取您不想要的内容

  • 然后应用
    在整个事情上“删除”它们


很抱歉,这也不起作用Dplyr::filter(!(代码%in%exclude.code)&(类型!=“a”))。
的位置?抱歉不起作用。它在您的计算机上工作吗?
df%>%dplyr::filter(!((code%在%exclude.code中)和(type==“a”))
现在可以工作了。谢谢,这有点难理解。罗纳克的评论很有帮助。
head(df %>% dplyr::filter((!code %in% exclude.code) & type != "a"))

 code type year    x
  5    b 1981 -1.0564839
  5    b 1981  1.5385139
  5    b 1981  0.5709470
  5    b 1981  0.4728047
  5    b 1981 -0.3739578
  5    b 1981  0.6338270
df %>% dplyr::filter( !((code %in% exclude.code) & (type == "a")) )