私はクライアント名と領域データを含むデータフレームを持っています。複数の列の値に基づいて合計値を計算する方法
私はいくつかの領域は、(例えば、Client A
はFloor 2
にFloor 1
と248
に202
を有していてもよい)複数のフロアをまたがって、各クライアントの総面積を算出します。
合計領域で新しい列を作成したいとします。
私は新しい列を作成する方法を知っている:
areas$new_area
を私は各クライアントの総面積(手動)を計算する方法を知っている:
sum(areas[areas$client == "Client A", "areas"])
私はとの難しさが生じていますどのようなデータフレームを繰り返し、プロセス全体を自動化します。
私は、データフレームを反復する部分的な解決策を考え出しましたが、位置の各クライアントの各領域値の合計を計算します(これは常に、もちろん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