2013-07-21 7 views
1

У меня есть два файла данных, которые выглядят следующим образом:Частично Объединение наборов данных в R

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  

.

Используя имена из первого столбца второго файла, мне нужно извлечь дополнительные данные из таблицы данных в первом файле. Однако не каждое имя во втором файле появляется в первом. У меня возникают проблемы с тем, чтобы файлы сливались должным образом. Буду признателен за любую оказанную помощь.

+3

Что вы пытались и что/не работали? Пожалуйста, поделитесь образцом набора данных, который реплицирует проблему, с которой вы сталкиваетесь. – A5C1D2H2I1M1N2O1R2T1

ответ

1

если вы разместили all.x=TRUE в команде слияния; все записи из первого фрейма данных будут в объединенном фрейме данных, даже если они не совпадают во втором. Это проблема, с которой вы столкнулись? В примере, в котором вы не дали ни одного из имен ростов, сопоставлено ни одному из наблюдений в переменной имени.

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) 
Смежные вопросы