2011-05-04 169 views
10

我在一个数据帧中有139104行的数据是96x1449的倍数。我有一个表型文件,其中包含96个样本的表型信息。 snp名称重复1449X96个样本。我必须合并基于sid和sen的两个数据框。这是我的两个数据框看起来像在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 
) 

我必须合并或添加疾病列和其他3列到数据文件。我无法在R中使用合并。我搜索谷歌,我没有达到正确的条件,得到答案。我很感谢在这个问题上的任何投入。

感谢,沙拉德

+5

'DAT < - 合并(DAT,苯氧,by.x = “SID”,由.y =“sen”,all = TRUE)' – Ista 2011-05-04 18:04:40

+2

对于后面的使用,不要错过[snpMatrix](http://www.bioconductor.org/packages/2.3/bioc/html/snpMatrix.html)存储基因型数据,快速GLM),[snpAssoc](http://cran.r-project.org/web/packages/SNPassoc/index.html)(用户友好型)或[GenABEL](http:// www.genabel.org/)软件包。大多数人可以通过[GGtools](http://www.bioconductor.org/packages/2.2/bioc/html/GGtools.html)建立特定的结构(或环境)来操纵和合并基因型和表型数据。 – chl 2011-05-04 18:39:38

+0

@Ista,下次发帖作为答案。这样,你可以得到一点点奖励。 – 2011-05-04 21:02:43

回答

9

您可以指定要直接与merge()匹配列:

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