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