私はウェブサイトで検索しようとしましたが、私の質問に対する答えは見つかりませんでした。既にある場合はリンクを書いてください。国別アンケートの2つのデータフレームを、2年の異なるパネルではなく、パネルでまとめます(r)
私は全国調査の2つのデータフレームを持っています。毎年、私はすでにインタビューを受けた家族と新しいものがあります。私はデータフレームをマージして、両方のデータフレームに存在するファミリだけを持ち、2014の値を1つの行に、2012の値を各個人に合わせるためにマッチさせたいとします(semplicity I調査には他の社会的変数は含まれていない)。例えば
:DF1およびDF2
nquest家族の数であり、> df1 <- data.frame(nquest=c(173, 526, 1066, 1066), nord=c(1,1,1,2), year=c(2014, 2014, 2014, 2014))
> structure(df1)
nquest nord year
1 173 1 2014
2 526 1 2014
3 1066 1 2014
4 1066 2 2014
> df2 <- data.frame(nquest=c(173, 526, 3456, 3456), nord=c(1,1,1,2), year=c(2012, 2012, 2012, 2012))
> structure(df2)
nquest nord year
1 173 1 2012
2 526 1 2012
3 3456 1 2012
4 3456 2 2012
ファミリーの成分ノール(EX 1人の父、母2)。
私はこの方法でそれらをマージしたい:
> df <- data.frame(nquest=c(173, 173, 526,526), nord=c(1,1,1,1), year=c(2014, 2012, 2014, 2012))
> structure(df)
nquest nord year
1 173 1 2014
2 173 1 2012
3 526 1 2014
4 526 1 2012
私はそれらをマージしようとした:
tot <- merge (df1, df2, by=c("nquest", "nord")
structure(tot)
nquest nord year.x year.y
1 173 1 2014 2012
2 526 1 2014 2012
と私はrbind機能を試してみました:
> tot <- rbind(s, df2)
> structure(tot)
nquest nord year
1 173 1 201
2 526 1 2014
3 1066 1 2014
4 1066 2 2014
5 173 1 2012
6 526 1 2012
7 3456 1 2012
8 3456 2 2012
ありがとうございました
ベースRのみを使って賢くないものを使うと、 'tot < - rbind(df1 [df1 $ nquest%in%df2 $ nquest、]、df2 [df2 $ nquest%in%df1 $ nquest、]) '。これはまず、各データフレームをフィルタリングして、両方のデータフレーム内のファミリのデータ行のみを含むようにし、それらを一緒にバインドします。 – brittenb