2

結果のテーブルがテーブル 1 と 2 の両方から値を取得するように、R で 2 つのテーブルを結合しようとしています。

df1<-data.frame(Name = c("Gene_1", "Gene_2", "Gene_4", "Gene_3"), "1"=c(0,1,2,6), "2" = c(5,6,7,5), "3" = c(9,8,7,7), check.names=FALSE)

> df1

    Name 1 2 3 
1 Gene_1 0 5 9
2 Gene_2 1 6 8
3 Gene_4 2 7 7
4 Gene_3 6 5 7


df2<-data.frame(Name = c("Gene_2", "Gene_4", "Gene_5"), "1" = c(0,2,3), "2" = c(3,2,1), "3" = c(4,3,2), check.names=FALSE)

> df2

    Name 1 2 3 
1 Gene_2 0 3 4
2 Gene_4 2 2 3 
3 Gene_5 3 1 2 

結果は次のようになります。

 1 Gene_1 0 5 9 NA NA NA
 2 Gene_2 1 6 8 0 3 4 
 3 Gene_3 6 5 7 NA NA NA 
 4 Gene_4 2 7 7 2 2 2 
 5 Gene_5 NA NA NA 3 1 2  

ループするのではなく、何らかの簡単な方法が必要だと思います...出力が列を任意の順序でソートすることは必須ではありません。正しい値が正しい場所にあることを確認したいだけです. 私はフォーラムを調べましたが、まだ立ち往生しています(ありがとう、ベス

4

1 に答える 1

4

mergeそこに着きます:

merge(df1, df2, by='Name', all=TRUE)

##     Name 1.x 2.x 3.x 1.y 2.y 3.y
## 1 Gene_1   0   5   9  NA  NA  NA
## 2 Gene_2   1   6   8   0   3   4
## 3 Gene_3   6   5   7  NA  NA  NA
## 4 Gene_4   2   7   7   2   2   3
## 5 Gene_5  NA  NA  NA   3   1   2
于 2013-03-21T03:02:01.733 に答える