问题描述
我是 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 (将#修改为@)