r - 根据来自另一个数据帧的唯一值范围过滤数据帧中的值
问题描述
我有两个大数据框(nrow = 20,000)
,每个都有公共变量(X, Y and Z)
。每个数据框共享一个变量的一些唯一值(Y)
,但 的值X and Z
不同。我想要做的是过滤一个数据帧(两个中较大的一个(df2)
),根据每个唯一值X
的较小数据帧中的值范围。因此,例如,如果唯一值 1 的值范围是 0.02 - 0.08,那么我想获取X 的值在给定值的范围内的所有值。我想制作一个包含这些过滤值的新数据框。(df1)
Y
X
df1
Y
X
Z
df2
Y
这是一些示例代码和数据以使用示例
# GENERATE SOME DATA
set.seed(5)
df1 <- data.frame(X = round(runif(20, 0.2, 0.3),4), Y = rep(c(4, 5, 6, 7, 8), each = 4), Z = round(runif(20),3))
df2 <- data.frame(X = round(runif(50, 0.1, 0.6),4), Y = rep(seq(1,10,1), each = 5), Z = round(runif(50),3))
## ESTABLISH THE RANGE OF X VALUES FOR EACH UNIQUE Y VALUE IN THE DATA FRAME OF INTEREST (df1)
library(dplyr)
df3 <- df1 %>%
group_by(Y) %>%
mutate(minX=min(X), maxX=max(X)) %>%
ungroup() %>%
distinct(Y, minX, maxX)
## FILTER df2 BY THE RANGE OF Y VALUES IN df1
df4<- df2 %>% filter(Y %in% df1$Y)
所以现在我已经df2
过滤,只给我Y
两个数据帧共有的值范围(df4)
。我需要在这里做的是创建一个新的数据框,其中df4
仅包含.X
X
df1
Y
(df3)
非常感谢任何帮助。
解决方案
推荐阅读
- c# - Dapper - 如何将记录作为自定义对象类型返回?
- reactjs - 如何将 TSX 源代码转换为 TS 代码?
- java - 单元测试基于 Spring Boot 的 REST 端点,它返回按给定方向排序的对象集合
- java - java.lang.NoClassDefFoundError: org/springframework/core/ErrorCoded
- flutter - 鼠标悬停时如何删除 ElevatedButton 周围的突出显示?
- numpy - 为什么numpy的vectorize函数对第一个元素执行两次
- javascript - 在我的加载状态上设置一个 setTimeout 以防止登录页面在用户完成身份验证之前闪烁是不好的做法吗?
- installation - 在一篇文章中进行环境配置时出现关于安装 pytorch-mpi 的错误
- kubernetes - 根据要求获取示例 k8 yaml 进行编辑的最佳方法是什么?
- graph - 在贝尔曼福特算法中将距离数组初始化为 0