私は数字があります。例えば、です。私はこのようなものを使用して5つの整数で、この数を分割したい:n桁の整数をappで割り算する関数。同じサイズ
foo <- function(x, n) rep(x/n, n)
foo(10, 5)
[1] 2 2 2 2 2
x
がn
のmutlipleなくなるまで、この作品:
foo(10, 3)
[1] 3.333333 3.333333 3.333333
私のような出力が好きwoud。
[1] 3 4 3 # the order doesn't matter.
各整数の差は最小でなければなりません。したがって、この結果は、許可されていません。
[1] 2 5 3
は、これまでのところ私は、これは常に正しいかどうかを確認します。この機能を使用しますが、いないよ:
foo <- function(x, n){
res <- rep(x/n, n)
res <- floor(res) # rounding
Diff <- x-sum(res) # Difference of the sum to the input
gr <- sample(1:n, Diff) # select by chance as many values as `Diff` is
res[gr] <- res[gr]+1 # plus one
res
}
おかげで、ユークリッド除算が良い点である 'if'条件 –
を追加しました。ありがとう。私は意図的に "by-cance-approach"を選択しました。 – Jimbou