用概率列出R中的1和0列表

时间:2014-10-24 21:41:45

标签: r

R的新手,寻找一些问题的帮助。

我希望在长度为N的R中创建一个数字向量,其中元素是1或0.我喜欢大约30%的元素是1。到目前为止我的代码

probs=rep(0.3,N)
x<-sample(0:1,N,replace=TRUE,prob=probs)

但是这会返回以下错误:

Error in sample.int(length(x), size, replace, prob) : 
 incorrect number of probabilities

我确定我在这里犯了一个非常简单的错误。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:5)

这个怎么样:

N <- 100
set.seed(123)
x <- sample(c(0,1),size=N,replace=TRUE,prob=c(.7,.3))
##
> table(x)
x
 0  1 
71 29

等效地,您可以使用二项分布表示:

set.seed(123)
y <- rbinom(N,1,.3)
> table(y)
y
 0  1 
71 29

答案 1 :(得分:1)

对于像你这样非常简单的案例,它也很容易做到

foo<-c(rep(1,3),rep(0,7))
sample(foo,100,replace=TRUE)

对于更复杂或变化的权重集,请执行其他答案和评论所建议的内容。