我需要在数据框中添加一个包含基因名称的列,其中包含有关同种型丰度的信息。我有两张桌子。
DF 1(包含整体基因ID #s作为rownames,并在大约15个额外列中包含asorted同种型丰度值)
event_name sample1_posterior_mean
gene:ENSMUSG00000079523 0.93,0.02,0.00,0.06 0.90,0.01,0.00,0.04
gene:ENSMUSG00000078572 0.78 0.67
gene:ENSMUSG00000022548 0.63 0.25
DF 2(包含3列整体基因ID#和基因名称)
Ensemble_Transcript_ID Ensemble_Gene_ID External_Gene_ID
2335 ENSMUST00000101973 ENSMUSG00000096659 Gm25679
2336 ENSMUST00000179019 ENSMUSG00000095915 n-R5s115
2337 ENSMUST00000183908 ENSMUSG00000099299 Gm27722
2338 ENSMUST00000044752 ENSMUSG00000039481 Nrtn
2339 ENSMUST00000179157 ENSMUSG00000095476 Gm25077
我想将DF 2中的External_Gene_ID列添加到DF 1中相应的Ensemble_Gene_ID列。我知道有一种方法可以根据感兴趣的列将这两个数据帧合并在一起
我希望我已经足够详细地解释了这一点。谢谢你的帮助!
答案 0 :(得分:0)
dplyr
解决方案(可能)首先在Ensemble_Gene_ID
中创建DF1
列,然后根据该列使用dplyr
加入。左连接是DF2中与DF1匹配的项目将成为新DF的一部分,但DF2独有的那些基因ID将不会(即DF1是您关心的模板类型,因此输出将保持不变DF1的原始内容。
DF1$Ensemble_Gene_ID <- sapply(rownames(DF1),
function(x){unlist(strsplit(x,':'))[2]})})
DF3 <- dplyr::left_join(DF1, DF2, by=c('Ensemble_Gene_ID'='External_Gene_ID'))
但我不确定这是否可以在没有每个data.frame的示例块的情况下工作。