df <- data.frame(loc.id = rep(1:10, each = 10),
MG = rep(1:10,times = 10),
x = runif(100))如果我想根据多个条件过滤数据,我可以这样做:
df %>% filter(MG > 5 & loc.id < 4)然而,我的情况是过滤条件是不同的。如:
如果loc.id小于4,则只保留MG 1-4。
如果loc.id介于5到6之间,则只保留MG 5-8。
如果loc.id大于6,则仅保持MG大于8。
发布于 2018-04-03 11:49:24
为什么不这样做:
df %>% filter( (loc.id<4 & between(MG, 1,4)) | (between(loc.id, 5, 6) & between(MG, 5, 8)) | (loc.id>6 & MG>8))
发布于 2018-04-03 11:50:35
当我需要过滤数据时,我更喜欢使用ex:
dfalt <- df[which(df$MG > 5 & df$loc.id < 4), ]
这对我有好处!
https://stackoverflow.com/questions/49629220
复制相似问题