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
我确定我在这里犯了一个非常简单的错误。有人能指出我正确的方向吗?
答案 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)
对于更复杂或变化的权重集,请执行其他答案和评论所建议的内容。