我正在尝试在两列之间找到相似的基因,以后可以只使用相似的基因。下面是我的代码:
top100_1Beta <- data.frame(grp1_Beta$my_data.SYMBOL[1:100])
top100_2Beta<- data.frame(grp2_Beta$my_data.SYMBOL[1:100])
common100_Beta <- semi_join(top100_1Beta,top100_2Beta)`
运行代码时,出现以下错误:
错误:
by
是必需的,因为数据源没有公共变量
这是错误的,因为当我打开top100_1Beta
和top100_2Beta
时,我至少看到前几个列出了完全相同的基因:ATP2A1,SLMAP,MEOX2,...
我很困惑为什么然后返回没有共同点。 任何帮助将不胜感激。 谢谢!
答案 0 :(得分:2)
在没有完整的工作示例的情况下,我猜测您的top100_1Beta和top100_2Beta数据框没有相同的列名。它们可能是grp1_Beta.my_data.SYMBOL.1.100.
和grp2_Beta.my_data.SYMBOL.1.100.
。这意味着semi_join函数不知道在哪里匹配数据帧。重命名列应解决此问题。
答案 1 :(得分:2)
我认为这里不需要任何形式的*_join
;相反,您似乎正在寻找intersect
intersect(grp1_Beta$my_data.SYMBOL[1:100], grp2_Beta$my_data.SYMBOL[1:100])
这将返回vector
和grp1_Beta$my_data.SYMBOL
的前100个条目中的grp1_Beta$my_data.SYMBOL
个公共条目。