我的数据类似于:
this.getRoomID = function() {
var me = this;
$.ajax({
url: "/get_room_id.php",
dataType: "json",
success: function(data) {
me.assignRoomVar(data.room_id);
}
})
}
使用dplyr' s print(dat)
i1 i2 node_id
4 4 8
4 5 8
3 2 9
5 1 8
或filter
(最好是过滤器)我想反向过滤数据,所以我得到了这个:
subset
我说反向过滤器,因为而不是过滤或子设置,如:
print(dat)
i1 i2 node_id
4 4 8
4 5 8
5 1 8
我想通过告诉R我想保留除node_id == 9之外的所有内容 我试过了:
dat<-filter(dat,node_id==8)
dat<-subset(dat,node_id==8)
但是都不行。有什么建议?感谢。
答案 0 :(得分:3)
<, >, <=, >=
我知道没有特别要求,但是如果针对<, >, <=, >=
个案例进行反向过滤,如果您希望所有node_id < 9
后续工作都可以使用
dat <- dat %>% filter(!node_id >= 9)
与
相同 dat <- dat %>% filter(node_id < 9)
答案 1 :(得分:0)
subset()
具有多个条件这与OP没有直接关系,但是可以在您有多个条件的subset()
情况下帮助其他人。
假设您有一个数据帧dat
,并且有一个名为dat
的{{1}}子集。您想获取A.df
中的B.df
,A.df
除外。
One approach使用dat
来颠倒条件的组合:
!
成为
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有rownames()
行,而A.df有1,2,3,4,5
行。因此,我们排除了这些行以获取B.df的3,4
。
1,2,5
第一行是获取dat$ID <- rownames(dat)
B.df <- subset(dat, !(ID %in% rownames(A.df)))
每行的名称(默认为dat
)并将其附加到新列中。