Проблема присвоения вероятностей в выборочной функции - PullRequest
0 голосов
/ 19 февраля 2020

Я сгенерировал несколько переменных с помощью следующего:

max_no=10
list2env(setNames(as.list(c(0.2, 0.25,0.15, 0.1, 0.1, 0.05, 0.03, 0.06, 0.03, 0.02, 0.01)), paste0("proportion", 0:max_no)), envir = .GlobalEnv)

Они генерируют такие объекты, как «пропорция0», «пропорция1», ..., «пропорция10» со значениями 0,2, 0,25 ... и др. c.

Я хочу вставить эти значения пропорции как вектор вероятностей в функцию выборки, как показано ниже:

sample(seq.int(0, max_no, 1), size=10000, replace=TRUE, prob=c(paste0("proportion", 0:max_no)))

Но я получаю сообщение об ошибке: Ошибка в sample.int (length ( x), size, replace, prob): NA в векторе вероятностей

Каким был бы простой способ определения вероятностей?

1 Ответ

0 голосов
/ 19 февраля 2020

Я не уверен, каков вариант использования для этого, но вы можете использовать mget и unlist

sample(seq.int(0, max_no, 1), size=10000, replace=TRUE, 
       prob=unlist(mget(c(paste0("proportion", 0:max_no)))))

Почему бы не передать вероятность напрямую вместо сохранения каждого числа в другой переменной?

sample(seq.int(0, max_no, 1), size=10000, replace=TRUE, 
       prob=c(0.2, 0.25,0.15, 0.1, 0.1, 0.05, 0.03, 0.06, 0.03, 0.02, 0.01))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...