[英]Errors when merging two dataframes based on date
這是我在此處提出的后續問題, 根據ID和日期合並數據集 (感謝有用的建議!)
我有兩個數據集,每個數據集都是家庭不同變量的每月匯總。 我想根據家庭ID和月份將兩者合並。
df1看起來像這樣:
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行如下所示:
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
我希望將“總計”列從df2中添加為具有匹配的hh_ids和日期的列。
我嘗試執行以下操作:
df3<-merge(df2,df1,by=c("hh_ids","date"),all=TRUE)
但是結果所得的data.drame df3現在看起來像這樣(我將一些列切碎以使其更易於顯示):
hh_ids date income consumption total
1 KELDK01 2012-11-1 62.70588 40.52941 0
2 KELDK01 2012-12-1 17.64706 42.43530 0
3 KELDK01 2013-01-1 91.76471 48.23529 0
4 KELDK01 2013-02-1 91.76470 107.52940 0
5 KELDK01 2013-03-1 116.47060 114.47060 0
6 KELDK01 2013-04-1 124.41180 118.29410 0
7 KELDK01 2013-05-1 137.23530 105.00000 0
8 KELDK01 2013-06-1 131.52940 109.54120 0
9 KELDK01 2013-07-1 121.52940 113.47060 0
2595 KNBOM33 15918 NA NA 1
2596 KNBOM33 15979 NA NA 1
2597 KNBOM33 2012-10-1 32.94118 18.11765 0
2598 KNBOM33 2012-12-1 56.47059 44.23529 0
2599 KNBOM33 2013-01-1 10.58824 29.76471 0
2600 KNBOM33 2013-02-1 54.70588 70.21176 0
似乎df1的日期在合並中發生了變化,因此未與df2中的其他值合並。 有人對我應該做什么有任何建議嗎? 我仔細檢查了df1和df2的“日期”列是否設置為合並前的日期。
似乎是“日期”的類型,其中“ 2013-8-1”與“ 2013-08-1”不同。
合並它們之前:
df1$date = as.Date(df1$date);
df2$date = as.Date(df2$date);
我首先檢查帶有hh_ids == "KNB0M33"
的行,以查看日期,收入和消費列中是否發生了任何有趣的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.