我有两个看起来像这样的数据文件:
bin chrom chromStart chromEnd name score strand
23 chr1 119537649 119537708 A_14_P109202 1000 +
109 chr1 37879762 37879821 A_16_P15088121 1000 +
129 chr1 59113425 59113484 A_16_P00074945 1000 +
138 chr1 68288459 68288517 A_16_P00088142 1000 +
和
Hybridization REF TCGA-02-0001-01C-01D-0185-02
Composite Element REF normalizedLog2Ratio
A_14_P112718 0.034472223
A_16_P15000916 -0.038733669
A_16_P15001074 -0.498562753
A_16_P00000012 -0.269915751
使用第二个文件第一列中的名称,我需要从第一个文件中的数据表中提取其他数据。但是,并非第二个文件中的每个名称都出现在第一个文件中。我在使文件正确合并时遇到问题。非常感谢任何帮助。
答案 0 :(得分:1)
如果在合并命令中放置all.x=TRUE
;第一个数据框中的所有记录都将位于合并的数据框中,即使它们在第二个数据框中没有匹配也是如此。那是你遇到的问题吗?在示例中,您没有给出任何与名称变量中的任何观察值匹配的rownames。
bin<-c(23,109,129,138)
chrom<-c("chr1","chr1","chr1","chr1")
chromStart<-c(119537649,37879762,59113425,68288459)
name<-c("A_14_P109202", "A_16_P15088121", "A_16_P00074945","A_16_P00088142")
b<- data.frame(cbind(bin,chrom,chromStart,name))
y <- data.frame(c(0.034472223 ,-0.038733669 , -0.498562753 ,-0.269915751))
rownames(y)<-c("A_14_P112718","A_16_P15000916","A_16_P15001074","A_16_P00000012")
print(b)
print(y)
#check the rows
nrow(b)
nrow(y)
#write rownames to new variable
y$name <- rownames(y)
#conduct merge
newdataframe <- merge(b, y, by=("name"), all.x = TRUE )
#check number of rows
nrow(newdataframe)