我有相同的列名的兩個數據幀,但對於每一個日期是不同的,就像這樣:結合兩個日期幀到同一列,但在不同的日期
#df1
Date col1 col2 col3
1 2017-07-10 1 2 3
2 2017-07-17 4 5 6
3 2017-07-24 7 8 9
#df2
Date col1 col2 col3
1 2017-07-11 10 11 12
2 2017-07-18 13 14 15
3 2017-07-25 16 17 18
我想合併兩個要獲得相同的列, 但保留信息到相應的日期,並下令一個數據幀由上行日期,像這樣:
#desired result
Date col1 col2 col3
1 2017-07-10 1 2 3
2 2017-07-11 10 11 12
3 2017-07-17 4 5 6
4 2017-07-18 13 14 15
5 2017-07-24 7 8 9
6 2017-07-25 16 17 18
我到它是使用merge(df1, df2, by = "Date", all = TRUE)
最接近的,但是這給了我:
Date col1 col2 col3 col1 col2 col3
1 2017-07-10 1 2 3 NA NA NA
2 2017-07-11 NA NA NA 10 11 12
3 2017-07-17 4 5 6 NA NA NA
4 2017-07-18 NA NA NA 13 14 15
5 2017-07-24 7 8 9 NA NA NA
6 2017-07-25 NA NA NA 16 17 18
編輯:所以想rbind
給我一個錯誤,表明我有我的dataframes一些時間序列的日期和阻止我獲取數據幀所需的合併。下面是輸出,當我做的實際dataframes str(df1)
和str(df2)
我使用:
str(df1)
data.frame': 14 obs. of 4 variables:
$ Date: Date, format: "2017-07-10" "2017-07-17" "2017-07-24" "2017-07-31"
...
$ bal : Time-Series from 128 to 141: 12448736 12557277 12549660 12517634
12480479 ...
$ 80 : Time-Series from 128 to 141: 14825217 15032135 15047306 15029003
15003920 ...
$ 95 : Time-Series from 128 to 141: 16083250 16342246 16369480 16358442
16339749 ...
str(df2)
'data.frame': 14 obs. of 4 variables:
$ Date: Date, format: "2017-07-04" "2017-07-11" "2017-07-18" "2017-07-25"
...
$ bal : Time-Series from 143 to 156: 6059787 6059787 6059787 6059787
6059787 ...
$ 80 : Time-Series from 143 to 156: 11234537 11239924 11245305 11250681
11256051 ...
$ 95 : Time-Series from 143 to 156: 1.4e+07 1.4e+07 1.4e+07 1.4e+07
1.4e+07 ...
使用'rbind',而不是'merge' – HubertL
也許你可以在Base R中嘗試'dplyr :: bind_rows'或'rbind'。 – HNSKD