2011-05-04 13 views
10

Tengo datos en un dataframe con 139104 filas que es múltiplo de 96x1449. Tengo un archivo de fenotipo que contiene la información del fenotipo de las 96 muestras. el nombre snp se repite 1449X96 muestras. Tengo que fusionar los dos marcos de datos basados ​​en sid y sen. Así es como mi dos tramas de datos parecersefusionando dos dataframes en R

dat <- data.frame(
    snpname=rep(letters[1:12],12), 
    sid=rep(1:12,each=12), 
    genotype=rep(c('aa','ab','bb'), 12) 
) 
pheno <- data.frame(
    sen=1:12, 
    disease=rep(c('N','Y'),6), 
    wellid=1:12 
) 

tengo que combinar o añadir la columna de la enfermedad y otros 3 columnas en el archivo de datos. No puedo usar la fusión en R. He buscado en Google, no estoy accediendo a los términos correctos para obtener la respuesta. Agradecería cualquier aporte sobre este tema.

Gracias, Sharad

+5

'dat <- merge (dat, fenotipo, by.x = "SID", por .y = "sen", all = TRUE) ' – Ista

+2

Para uso posterior, no se pierda la [snpMatrix] (http://www.bioconductor.org/packages/2.3/bioc/html/snpMatrix.html) (eficiente almacenamiento de datos de genotipos, GLM rápidos), [snpAssoc] (http://cran.r-project.org/web/packages/SNPassoc/index.html) (fácil de usar) o [GenABEL] (http: // www.genabel.org/) paquetes. La mayoría permite construir una estructura específica (o entorno, con [GGtools] (http://www.bioconductor.org/packages/2.2/bioc/html/GGtools.html)) para manipular y fusionar datos de genotipo y fenotipo. – chl

+0

@Ista, la próxima publicación como respuesta. De esa forma, puedes ser recompensado de una pequeña manera. –

Respuesta

9

Puede especificar las columnas que desee para que coincida con el directamente con merge():

merge(dat, pheno, by.x = "sid", by.y = "sen")