我在 R 中有一个巨大的数据框,看起来像这样:
数据框1
ID | 开始 | 停止 |
---|---|---|
+ | 3 | 5 |
- | 9 | 13 |
我还有另一个数据框,看起来像这样:
数据框2
ID | 姓名 | 位置 |
---|---|---|
- | 你好 | 4 |
+ | 那里 | 7 |
- | 我的 | 11 |
+ | 姓名 | 12 |
我想要做的是对于数据帧 1 中的每一行,我想确定它在给定范围内的“距离”,或者如果它不属于某个范围或“ID”(+/-) 不属于某个范围,则打印 NA匹配。所以输出会是这样的:
ID | 姓名 | 位置 | 相对位置 |
---|---|---|---|
- | 你好 | 4 | 2 |
+ | 那里 | 7 | 不适用 |
- | 我的 | 12 | 3 |
+ | 姓名 | 12 | 不适用 |
我目前有一个相对较长的循环,使用 apply() 和几层 if 函数来运行此过程。我遇到的问题是我需要对多个非常大的数据帧(大小为千兆字节)执行此操作,因此效率是关键。完成这个过程最有效的方法是什么?
我也尝试过 cut() 函数,但我不知道如何打印我想要的结果或如何使间隔不连续。即使它有效,我也不知道它是否会更有效。