r - 基于第二个数据帧中的值范围的子数据帧
问题描述
我正在尝试根据围绕第二个数据框的值的范围创建数据框的子集,我一直在研究,但我无法弄清楚如何去做。我在这里使用了虚拟数据,因为它们都是具有许多列的大型数据集。
数据帧 1 (df1) 有 50 列,不同纬度的数千条记录
记录 | 纬度 |
---|---|
轰炸机 | 51.41 |
APIM | 51.67 |
轰炸机 | 51.34 |
数据框 2 (df2) 有数百个不同纬度的城镇,它明显小于 df1
镇 | 纬度 |
---|---|
布里斯托尔 | 51.40 |
默顿 | 51.42 |
霍舍姆 | 51.33 |
我需要一个 df1 的子集,它只包含纬度在 df2 中纬度 0.01 范围内的行。因此代码需要查看 df1 的每一行,并针对 df2 的每一行测试该数字。输出将仅包括 df1 中纬度值在 df2$Latitude 值的 0.01 范围内的行。
在示例中,将包含以下行
记录 | 纬度 |
---|---|
轰炸机 | 51.41 |
轰炸机 | 51.34 |
我有代码开始做一个过滤器,然后我可以通过数据框运行来创建子集
LatFil <- df1$latitude %in% df2$latitude)
但我不知道如何输入 df2$latitude 值的 ± 0.01 的逻辑测试
解决方案
当涉及精度时(即加减 0.01,它是一个浮点数),使用比较运算符而不是固定匹配可能会更好
subset(df1, (Latitude >= (df2$Lat - 0.01)) &
(Latitude <= (df2$Lat + 0.01)))
推荐阅读
- ionic-framework - 使用详细页面搜索 Ionic3
- c# - 有没有办法使用 FtpWebRequest 使用 C# 中的客户端证书对 FTP 进行身份验证,这也可以从 iis 工作?
- c++ - C++ 从两个类中确定 void* 的类型
- javascript - 现代 Web 应用 MVC Core 2:纯 JavaScript 还是 Angural?
- sql - oracle程序中的拆分操作
- python - csv文件的输出格式 - Python
- cookies - 浏览器不存储 cookie
- android - Android - 在不设置 imageView 的情况下为图像设置动画
- django - 在一个模型类表中进行嵌套引用
- ffmpeg - 您如何使用 ffmpeg 随时间改变视频饱和度?