2 つの列を持つ data.frame があります。
category quantity
a 20
b 30
c 100
d 10
e 1
f 23
g 3
h 200
2 つのパラメーターを持つ関数を作成する必要があります。dataframe
は、数量列を超えて実行され、超過した場合は後続の行を分割しbin_size
、実行中のビン番号を追加の列として追加します。cumsum
cumsum
bin_size
次のように入力します。
function(dataframe, 50)
上記の例では、次のようになります。
category quantity cumsum bin_nbr
a 20 20 1
b 30 50 1
c 50 50 2
c 50 50 3
d 10 10 4
e 1 11 4
f 23 34 4
g 3 37 4
h 13 50 4
h 50 50 5
h 50 50 6
h 50 50 7
h 37 37 8
説明:
row a + b sum up to 50 --> bin_nbr 1
row c is 100 -> split into 2 rows @ 50 -> bin nbr 2, bin_nbr 3
row d,e,f,g sum up to 37 -> bin_nbr 4
I need another 13 from row h to fill in bin_nbr 4 to 50
The rest of the remaining quantity from h will be spitted into 4 bins -> bin_nbr 5, 6, 7, 8