微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 non-equi join 定义一个数据框中的一组数据,这些数据与 R 中的另一个数据框在一定范围内

如何解决使用 non-equi join 定义一个数据框中的一组数据,这些数据与 R 中的另一个数据框在一定范围内

我是 R 新手,我有一项非常艰巨的任务想要完成。

我有两组数据框。 DF1 由 810 个观测值和 4 个变量组成,DF2 由 1707 个观测值和 51 个变量组成。 下面是一些例子

DF1:

Chr POS Range_Plus_10 Range_Minus_10

2 47403201 47403211 47403191

2 47403202 47403212 47403192

2 47403210 47403220 47403200

2 47403210 47403220 47403200

2 47403210 47403220 47403200

2 47403211 47403221 47403201

DF2:

染色体位置
2 47630258
2 47630263
2 47630263
2 47630269
2 47630271
2 47630275
注意:不是所有的 df2 变量都显示出来,我对其他变量不感兴趣,但最好在输出数据中保留其他变量。

我想要的是过滤 df2 中的所有位置,以查看这些位置中的任何一个是否位于 df1 的范围内(在每一行的 Range_Plus_10 和 Range_Minus_10 内)。 例如,df2 中的第一个位置是 47630258,我想知道这个 47630258 是否位于 df1 中任何行的 range_plus_10 和 Range_Minus_10 中,所以我希望 R 给我一个输出列,其中包含 df2 中可能对应的所有可能位置到 df1 范围内的每一行。

我尝试使用非对等连接,但我不断收到一些错误,并且不确定哪里出错了。 谁能提供一个代码获取我想要的数据,其次告诉我为什么我的错误发生。

这是我使用过的脚本:

library (data.table)

result <- df2[df1,. ("Chromosome","Position"),on = .(Position < Range_Plus_10,Position >Range_Minus_10),by = .EACHI]

但我不断收到错误消息: [.data.frame(df2,df1,.("Chr","Position",...),on = .(Position Range_Minus_10),by = .EACHI)

对不起我的格式

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。