Rについての質問です。id 付きの、2列データ(ひとつが、id です。)を複数読み込んで表にするのは、どう書けばいいのでしょうか?

例) データが、 id a id b id c
1 4 1 2 1 3
1 2 1 1 1 4
のようになっています。別々に、id,a id,b id,c の3種類のデータを読み込んで、それを
id a b c
1 4 2 3
2 2 1 4
のようにしたいのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2010/02/12 14:27:59
  • 終了:2010/02/13 01:57:04

ベストアンサー

id:gappa No.1

gappa回答回数23ベストアンサー獲得回数32010/02/12 22:05:28

ポイント35pt

データフレーム:A

 >( A <- data.frame( id=c(1,2), a=c(4,2) ) )

 > id a

 >1 1 4

 >2 2 2

データフレーム:B

 >( B <- data.frame( id=c(1,2), b=c(1,2) ) )

 > id b

 >1 1 1

 >2 2 2

データフレーム:C

 >( C <- data.frame( id=c(1,2), c=c(3,4) ) )

 > id c

 >1 1 3

 >2 2 4

にデータが格納されているとして

 

結合されたデータフレーム:E

 >D <- merge(A,B,all=TRUE)

 >E <- merge(D,C,all=TRUE)

 > id a b c

 >1 1 4 1 3

 >1 2 2 2 4

で生成されます。

http://q.hatena.ne.jp/answer

id:isogaya

質問がおかしくてすみません。id をキーにして横に結合したいのですが、

この方式で、

これで、id を index にすることはできるのでしょうか?

2010/02/12 22:13:37

その他の回答(1件)

id:gappa No.1

gappa回答回数23ベストアンサー獲得回数32010/02/12 22:05:28ここでベストアンサー

ポイント35pt

データフレーム:A

 >( A <- data.frame( id=c(1,2), a=c(4,2) ) )

 > id a

 >1 1 4

 >2 2 2

データフレーム:B

 >( B <- data.frame( id=c(1,2), b=c(1,2) ) )

 > id b

 >1 1 1

 >2 2 2

データフレーム:C

 >( C <- data.frame( id=c(1,2), c=c(3,4) ) )

 > id c

 >1 1 3

 >2 2 4

にデータが格納されているとして

 

結合されたデータフレーム:E

 >D <- merge(A,B,all=TRUE)

 >E <- merge(D,C,all=TRUE)

 > id a b c

 >1 1 4 1 3

 >1 2 2 2 4

で生成されます。

http://q.hatena.ne.jp/answer

id:isogaya

質問がおかしくてすみません。id をキーにして横に結合したいのですが、

この方式で、

これで、id を index にすることはできるのでしょうか?

2010/02/12 22:13:37
id:gappa No.2

gappa回答回数23ベストアンサー獲得回数32010/02/12 22:24:04

ポイント35pt

はい、

同じidという変数名をつけておけばindexとして使えます。

a,b,cに同じidが無い場合には<NA>の欠損値として扱われます。

http://q.hatena.ne.jp/answer

id:isogaya

ばっちりです。ありがとうございました。

2010/02/13 01:56:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません