r - 根据多个条件过滤一组data.frame
问题描述
我正在寻找一种优雅的方法来根据多个条件过滤特定组大 data.frame 的值。
我的数据框看起来像这样。
data=data.frame(group=c("A","B","C","A","B","C","A","B","C"),
time= c(rep(1,3),rep(2,3), rep(3,3)),
value=c(0.2,1,1,0.1,10,20,10,20,30))
group time value
1 A 1 0.2
2 B 1 1.0
3 C 1 1.0
4 A 2 0.1
5 B 2 10.0
6 C 2 20.0
7 A 3 10.0
8 B 3 20.0
9 C 3 30.0
我只想在时间点 1 过滤掉所有小于 1 但大于 0.1 的值
我希望我的 data.frame 看起来像这样。
group time value
1 A 1 0.2
4 A 2 0.1
5 B 2 10.0
6 C 2 20.0
7 A 3 10.0
8 B 3 20.0
9 C 3 30.0
非常感谢任何帮助。
解决方案
有dplyr
你可以做
library(dplyr)
data %>% filter(!(time == 1 & (value <= 0.1 | value >= 1)))
# group time value
# 1 A 1 0.2
# 2 A 2 0.1
# 3 B 2 10.0
# 4 C 2 20.0
# 5 A 3 10.0
# 6 B 3 20.0
# 7 C 3 30.0
推荐阅读
- java - 如何使用 Java 查找此校验和
- python - 在同一模块中使用 unittest.mock 的补丁,通过“__main__.imported_obj”打补丁时得到“没有属性”
- javascript - “currentTime”音频属性不适用于我的安卓手机
- asp.net-identity - 如何使用不同用户商店的身份服务器对来自多个客户端应用程序的用户进行身份验证?
- elasticsearch - Grafana 面板警报无数据
- python - 如何获得特征向量值?
- ios - 如何在 React Native 中延迟 AppLoading?某些元素的加载速度比其他元素快?
- azure - 无法使用 Azure Authenticator App 登录 Azure 云外壳
- swift - 如何打开 .nib 文件?
- python - Pandas 操作 stack() 从 MultiIndex 中删除分类类型