我有一個數據幀,看起來像這個附加列個月:如何在數據幀在特定位置
CONTRACT_ID START_DATE SERVICE VALUE year month
1 01-01-2018 A 10 2018 1
2 01-01-2018 B 20 2018 1
3 01-01-2018 C 30 2018 1
4 01-03-2018 B 40 2018 3
5 01-03-2018 C 50 2018 3
6 01-03-2018 A 60 2018 3
而且我已經轉化爲一種形式是這樣的:
CONTRACT_ID year SERVICE 1 3
1 2018 A 10 NA
2 2018 B 20 NA
3 2018 C 30 NA
4 2018 B NA 40
5 2018 C NA 50
6 2018 A NA 60
使用重塑功能是這樣的:
reshape(df, idvar = c("year","CONTRACT_ID","SERVICE"), timevar = "month", direction = "wide")
的問題是,在我目前的數據幀,我沒有數據,某些月份的就像我們在這裏看到的2(feb)。但我想補充列所有缺少像幾個月:
CONTRACT_ID year SERVICE 1 2 3
1 2018 A 10 NA NA
2 2018 B 20 NA NA
3 2018 C 30 NA NA
4 2018 B NA NA 40
5 2018 C NA NA 50
6 2018 A NA NA 60
如何實現這一目標。我知道我可以在最後添加列,但效果不明顯。我正在創建一個腳本,並希望它效率更高,耗時更少。
編輯: 根據以下評論的建議,我使用spread
函數來擴大數據。 但是,如果我保留drop = False
該代碼將所有組合作爲輸出顯着增加表大小。如果我將它設置爲TRUE,它不會創建組合,但它也會刪除當前數據中沒有數據的月份列。我想保留列,但不包含CONTRACT_ID,DATE,SERVICE不存在的組合。最初我在隨後的步驟中刪除了這些行,但現在表的大小已經大大增加了,我需要在進行數據傳播的同時處理它。 任何建議。
我是否需要添加一個新的問題,因爲我一直在試圖找到一個解決這個問題的方法,並失敗了..現在我的想法已經不多了。 –