将基因名称添加到数据框,在转录本 ID 列上合并 2 个数据框
Add gene names to dataframe, merge 2 dataframes on transcript ID column
我需要将包含基因名称的列添加到包含同种型丰度信息的数据框中。我有两张桌子。
DF 1(包含作为行名的集合基因 ID #s 和大约 15 个附加列中的分类亚型丰度值)
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 #s 和基因名称)
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 列。我知道有一种方法可以根据列将这两个数据框合并在一起感兴趣
我希望我已经足够详细地解释了这一点。感谢您的帮助!
一个dplyr
解决方案(可能)是先在DF1
中创建Ensemble_Gene_ID
列,然后使用dplyr
基于该列进行连接。左连接使得 DF2 中与 DF1 匹配的项目将成为新 DF 的一部分,但 DF2 独有的那些基因 ID 不会是(即,DF1 是您关心的模板,这样输出将保持DF1的原始nrow)。
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 的示例块,这是否有效。
我需要将包含基因名称的列添加到包含同种型丰度信息的数据框中。我有两张桌子。
DF 1(包含作为行名的集合基因 ID #s 和大约 15 个附加列中的分类亚型丰度值)
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 #s 和基因名称)
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 列。我知道有一种方法可以根据列将这两个数据框合并在一起感兴趣
我希望我已经足够详细地解释了这一点。感谢您的帮助!
一个dplyr
解决方案(可能)是先在DF1
中创建Ensemble_Gene_ID
列,然后使用dplyr
基于该列进行连接。左连接使得 DF2 中与 DF1 匹配的项目将成为新 DF 的一部分,但 DF2 独有的那些基因 ID 不会是(即,DF1 是您关心的模板,这样输出将保持DF1的原始nrow)。
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 的示例块,这是否有效。