1
一些調試後,我已經縮小問題到以下幾點:爲什麼rbinom在R中給我nas?
minc <- function(split, population, base, lift = 0.1) {
control.pop <- population * (1- split)
test.pop <- population*split
control.cr <- base
test.cr <- control.cr*(1+lift)
#### print statements ####
print(c(control.pop, control.cr)) # print values of variables
print(rbinom(1, 5800.0 , 0.1)) # print rbinom for the values
print(rbinom(1, control.pop, control.cr)) # print rbinom for the variables
}
minc(0.8, population = 29000, base = 0.1, lift = 0.1)
這給輸出
[1] 5800.0 0.1
[1] 589
[1] NA
也就是說, 我打印的傳遞的變量的值,並然後rbinom爲這些值 - 它工作正常 - 但是當我做變量的rbinom我得到NA。這裏發生了什麼事?
或者可能是'round(population *(1-split))'('as.integer()'截斷) –
同意我會在解決方案中添加round。問題本身與R處理計算的方式有關。例如: 'control.pop < - population * .2' 正常工作。 但這會引發錯誤 'control.pop < - population *(1 - .8)' –
Thanks!不想承認我在這花了多少時間:P –