如何在R中的单个命令中根据不同概率的向量生成随机样本



我需要根据他们的";批准的概率";(即他们投票的概率[1](。每个个体(id(都有一个家庭状态(uf(,该家庭状态被认为具有不同的批准概率(prob_approve(,并且在这个玩具示例中被认为是已知的。

以下是数据示例:

pop_tab <- read.table(header=TRUE,sep=',',text = "id,uf,prob_approve
1,SC,0.528788386
2,AM,0.391834279
3,RJ,0.805862415
4,SP,0.762671162
5,CE,0.168054353
6,MG,0.78433876
7,PR,0.529794529
8,PA,0.334581091
9,SP,0.762671162
10,PA,0.334581091")

我试过了:

x <- list(prob = pop_tab$prob_approve)
vote <- lapply(x, runif)

但我不认为"runif(("函数是用列"上的概率处理的;prop_approve";。

我如何在一个命令中根据人口的家乡州概率模拟他们的投票,而不必在for循环中逐行处理?

提前谢谢。

使用rbinom():

pop_tab <- read.table(header=TRUE,sep=',',text = "id,uf,prob_approve
1,SC,0.528788386
2,AM,0.391834279
3,RJ,0.805862415
4,SP,0.762671162
5,CE,0.168054353
6,MG,0.78433876
7,PR,0.529794529
8,PA,0.334581091
9,SP,0.762671162
10,PA,0.334581091")
rbinom(n = nrow(pop_tab),
size = 1,
prob = pop_tab$prob_approve)
##  [1] 0 0 1 0 0 1 1 1 1 1

最新更新