私は、世帯ごとに異なる変数を毎月まとめた2つのデータセットを持っています。私は世帯のIDと月に基づいて2つをマージしたい。IDと日付に基づいてデータセットをマージする
DF1 1は次のようになります。列のように追加されるから
hh_ids date income consumption alcohol cleaning_materials clothing
1 KELDK01 2012-11-1 62.70588 40.52941 0 0.000000 0.000000
2 KELDK01 2012-12-1 17.64706 42.43530 0 1.058824 7.058824
3 KELDK01 2013-01-1 91.76471 48.23529 0 0.000000 0.000000
4 KELDK01 2013-02-1 91.76470 107.52940 0 0.000000 0.000000
5 KELDK01 2013-03-1 116.47060 114.47060 0 0.000000 0.000000
6 KELDK01 2013-04-1 124.41180 118.29410 0 2.705882 17.647060
7 KELDK01 2013-05-1 137.23530 105.00000 0 1.411765 1.882353
8 KELDK01 2013-06-1 131.52940 109.54120 0 4.352942 2.941176
9 KELDK01 2013-07-1 121.52940 113.47060 0 2.352941 25.882350
10 KELDK01 2013-08-1 123.32940 86.50588 0 2.588235 2.941176
が、私は「合計」欄をしたい:
hh_ids date total
<chr> <chr> <dbl>
1 KELDK13 2013-8-1 1
2 KMOMB02 2013-2-1 1
3 KMOMB02 2013-5-1 2
4 KMOMB04 2013-7-1 2
5 KMOMB04 2013-9-1 1
6 KMOMB06 2013-6-1 1
7 KMOMB14 2013-8-1 1
8 KMOMB16 2013-6-1 1
9 KMOMB17 2012-10-1 1
10 KMOMB17 2012-11-1 2
とDF2の最初の10行は次のようになりますdf2に一致するhh_idsと日付を指定します。
私は次の操作を実行しようとしている:
df3<-merge(df2,df1,by=c("hh_ids","date"))
しかし、私のDF2は53行があり、DF1は、より多くのを持って、そして得られたDF3はわずか14行があります。どんな提案も大歓迎です!
予想される行数はいくつですか?オーバーラップがわずか14の場合、結果は正常です。 – Jimbou
両方のデータフレームにわずか14のHH月が存在する可能性があります。もう1つのチェックは、変数の型が2つのデータセットで同じであるため、マージの際にファクタ/変数変換で変わったことはありません。 – lmo
@ジンボウ:hh/dateの53通りの組み合わせがすべて大きなdata.frameに表示されるはずなので、53行が必要です。明快さの欠如のためのお詫び –