大致看了你的说明,我不确定是否懂了你的想法。我猜是这样啊:
1、你的原数据是矩阵,不是数据框,所以用inner_join出了问题。
2、你想用excel表中列的样本编号,索引原数据中的基因数据。
基于上述理解,我想可能的方法:
1、原数据矩阵先as.data.frame()转成数据框E,看看列名的样本编号还在不在,如果在的话,将数据框转置一下,用 t()函数。因为你的原矩阵中列名是样本编号,行名是基因表达,所以转置以便后面合并操作。
2、转置后,数据框应该是没有列名的,第一列应该是样本编号,但[1,1]应该是NA。这时,应该为数据框定义列名,第一列,比如说index,随你喜欢,从第二列起,把第一行的基因表达作为各列的列名。然后删除第一行,因为[1,1]是NA。这样,原数据就应该调整好了。
3、读入EXCEL表,用读入数据的第一列重新做个数据框F(只用这一列),之所以重做,是因为列名改为index,和原数据第一列列名相同即可。
4、可以不用你那个inner_join(),这是取交集的。直接用left_join(), 比如 result <- F %>% left_join(E, by="index")
估计不出问题的话,应该是你要的结果。如果在结果中你想加上excel表中其它列数,在第3步select就可以了。



雷达卡



京公网安备 11010802022788号







