2011-05-04 218 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")