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)))