我想從一個數據框創建加權平均值並將其添加到另一個數據框。通常,我在SQL中這樣做,但我不能在這種情況下。我在這裏給出的例子非常簡單。從一個數據框計算加權平均數並將列添加到另一個數據框
第一個數據框叫做Customer。它有一個CustomerID列。
Customer <- data.frame(
CustomerID = sample(1:10)
)
第二個數據幀被稱爲Order。它有四個字段:CustomerID,Year,Weight和TotalCost。
Order <- data.frame(
CustomerID = sample(1:9, 100, replace=TRUE),
Year = sample(2014:2016, 100, replace=TRUE),
Weight = sample(1:3, 100, replace=TRUE),
TotalCost = sample(200:400, 100, replace=TRUE)
)
我想列WeightedCost添加到客戶數據幀是該客戶,計算出的和(重量* TOTALCOST)/薩姆(重量)由客戶ID字段,並且其中限定的加權平均TOTALCOST年> 2015年。
我看了看循環客戶表,但我很確定有一個更好的矢量化解決方案。
此外(後期編輯),我想知道如何實現這一點,如果一年來自客戶表而不是明確定義。這是新的客戶數據幀:
c = c(1,1,2,2,3,3,4,4,5,5)
y = c(2014,2015,2014,2015,2014,2015,2014,2015,2014,2015)
Customer <- data.frame(
CustomerID = c,
Year = y
)
我不熟悉的dplyr包,雖然我沒有安裝它,並添加庫。當我將你的代碼寫入R時,它不會「完成」。它正在尋找另一行代碼。 –
是的,在'transmute'行末尾缺少一個括號 - 我昨晚編輯了它,我猜是在你複製之後? - 我只是雙重檢查它 - 現在看起來很好,對不起:) – user127649
如果年(在這種情況下:2015年)是客戶表中的一列,我將如何實施? –