首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于不同条件对每组数据的过滤

基于不同条件对每组数据的过滤
EN

Stack Overflow用户
提问于 2018-04-03 11:43:32
回答 2查看 118关注 0票数 0
代码语言:javascript
复制
df <- data.frame(loc.id = rep(1:10, each = 10), 
       MG = rep(1:10,times = 10),
       x = runif(100))

如果我想根据多个条件过滤数据,我可以这样做:

代码语言:javascript
复制
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。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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))

票数 4
EN

Stack Overflow用户

发布于 2018-04-03 11:50:35

当我需要过滤数据时,我更喜欢使用ex:

dfalt <- df[which(df$MG > 5 & df$loc.id < 4), ]

这对我有好处!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49629220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档