R 反向过滤器/子集数据帧

R 反向过滤器/子集数据帧,r,filter,dataframe,dplyr,subset,R,Filter,Dataframe,Dplyr,Subset,我的数据看起来像: print(dat) i1 i2 node_id 4 4 8 4 5 8 3 2 9 5 1 8 使用dplyr的过滤器或子集(最好是过滤器),我想对数据进行反向过滤,以便得到以下结果: print(dat) i1 i2 node_id 4 4 8 4 5 8 5 1 8 我之所以说反向过滤,是因为它不是过滤或子设置,比如

我的数据看起来像:

print(dat)
i1  i2  node_id
 4   4        8
 4   5        8
 3   2        9
 5   1        8
使用dplyr的
过滤器
子集
(最好是过滤器),我想对数据进行反向过滤,以便得到以下结果:

 print(dat)
 i1  i2  node_id
 4   4        8
 4   5        8
 5   1        8
我之所以说反向过滤,是因为它不是过滤或子设置,比如:

dat<-filter(dat,node_id==8)
dat<-subset(dat,node_id==8)
DAT对
,=
我知道这不是特别要求的,但是在对案例进行反向过滤的情况下,=
条件,如果您想要所有的
节点id<9
都可以使用

dat%过滤器(!node\u id>=9)

这和

dat%过滤器(节点id<9)

subset()
具有多个条件 这与OP没有直接关系,但可以帮助其他人处理具有多个条件的
subset()

假设您有一个数据帧
dat
,并且您有一个名为
a.df
dat
子集。您想要获得
B.df
,它从
dat
中排除
A.df

正在使用
要反转条件组合,请执行以下操作:

A.df <- subset(dat, Col1 %in% criteria | Col2 %in% criteria | Col3 %in% criteria)

第一行是获取
dat
(默认为
1,2,3,…
)的每一行的名称,并将它们附加到一个新列。

尝试
过滤器(dat,node_id!=9)
啊,是的,非常感谢!非常感谢,我会用这个。
A.df <- subset(dat, Col1 %in% criteria | Col2 %in% criteria | Col3 %in% criteria)
B.df <- subset(dat, !(Col1 %in% criteria | Col2 %in% criteria | Col3 %in% criteria))
dat$ID <- rownames(dat)
B.df <- subset(dat, !(ID %in% rownames(A.df)))