【问题标题】:R "non-random" number simulatonR“非随机”数模拟
【发布时间】:2016-11-24 03:49:48
【问题描述】:

这个问题是关于 R 的。我想生成一个 1 和 0 的“非随机”样本,其中生成的下一个值取决于前一个值。例如,如果向量中的第一个值为 1,则下一个值为 1 的概率为 60%,如果下一个值为 0,则以下值为 0 的概率为 60%。我有附上向我提出的问题。我非常感谢任何帮助。

【问题讨论】:

  • 到目前为止你有什么?
  • x <- sample(c(0,1),1); vect <- c() for (i in 1:10000) if(x==1){vect[i] <- sample(c(0,1),1,prob=c(.4,.6)) } else if(x==0) {vect[i] <- sample(c(0,1),1,prob=c(.6,.4)) }
  • 这是我最初拥有的,但我相信我没有在 for 循环中正确索引我的空向量

标签: r random simulation


【解决方案1】:

鉴于您的条件,我将使用for 循环生成一个序列。

set.seed(111)

n = 10000                #As the Q said at least 10,000
seq = vector()
seq[1] = sample(0:1, 1)  #Also given in the Q

for(i in 2:n) {
  if(seq[i-1] == 0){
    seq[i] = sample(0:1, 1 , prob = c(0.6,0.4))
  }
  else{
    seq[i] = sample(0:1, 1 , prob = c(0.4,0.6))
  }
}

table(seq)
seq
0    1 
4961 5039 

【讨论】:

  • 我相信这就是我想要的。我最初的 if else 语句没有正确初始化 for 循环。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 2019-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-23
相关资源
最近更新 更多