0
我有一個數據框,其中包含客戶端名稱和區域數據。如何根據多列值計算總值
我要計算的總面積爲每個客戶端的一些地區跨越多個樓層(例如,Client A
可能對Floor 2
202
上Floor 1
和248
)。
我想創建一個總面積的新列。
我知道如何創建新列:
areas$new_area
而且我知道如何計算的總面積爲每個客戶端(手動):
sum(areas[areas$client == "Client A", "areas"])
什麼我有難度遍歷數據框並自動執行整個過程。
我想出了一個遍歷數據框的部分解決方案,但它僅計算每個客戶端在位置i
處的每個區域值的總和(我知道這總是會發生的,因爲它只會使用單個值area
列,當然):
for(i in 1:nrow(areas)){
areas$new_area[i] <- sum(areas$areas[i])
}
而且,我懷疑/知道一個apply
功能幾乎可以肯定是在這裏採取的辦法,但我不知道該用哪一個也不知道怎樣去應用它(無雙關意圖)。
我該如何a)
實現這個和b)
實現它在一個更清潔的方式?
我的預期輸出是這樣的(或者它的一些變化):
--------------------------------------
| Client | Floor | Area | New Area |
--------------------------------------
| A | 1 | 202 | 202 |
--------------------------------------
| A | 2 | 248 | 450 |
--------------------------------------
| B | 1 | 1000 | 1000 |
--------------------------------------
| B | 2 | 150 | 1150 |
--------------------------------------
我想在與將總面積值的爲每個客戶端的新列(我的例子顯示了一個累積總數,但它是否是累積無關緊要 - 僅僅是爲了舉例)。
@agenis我已經更新了問題計算總量。 – MusTheDataGuy
好吧,在我看來,你需要的只是按組進行總結?如果它的情況下這個答案可以幫助? https://stackoverflow.com/q/1660124/3871924 – agenis