R 马尔可夫链矩阵

R 马尔可夫链矩阵,r,R,我试图修改这段代码,以便在100天内模拟1000个人。这里的代码只针对一个人。对于一个包含1000行和100列的矩阵,我将如何修改它 days<-100 CURstate<-1 state<-numeric(days) for(i in 1:days){ randomNum<-runif(1) if(CURstate==0){ if(randomNum < .04){ CURstate <- 1 }else{ C

我试图修改这段代码,以便在100天内模拟1000个人。这里的代码只针对一个人。对于一个包含1000行和100列的矩阵,我将如何修改它

days<-100
CURstate<-1
state<-numeric(days)
for(i in 1:days){
  randomNum<-runif(1)
  if(CURstate==0){
    if(randomNum < .04){
      CURstate <- 1
    }else{
      CURstate <- 0
    }
  }else{
    if(randomNum < .11){
      CURstate<-0
    }else{
      CURstate<-1
    }
  }
  state[i]<-CURstate
}

days这里有一个答案

set.seed(1121)
gen_state <- function() {
  days <- 100
  CURstate <- 1
  state <- numeric(days)
  for (i in 1:days) {
    randomNum <- runif(1)
    if (CURstate == 0) {
      if (randomNum < .04) {
        CURstate <- 1
      } else{
        CURstate <- 0
      }
    } else{
      if (randomNum < .11) {
        CURstate <- 0
      } else{
        CURstate <- 1
      }
    }
    state[i] <- CURstate
  }
  return(state)
}

state_matrix <- t(replicate(1000,gen_state()))
set.seed(1121)
根尤州
set.seed(1121)
gen_state <- function() {
  days <- 100
  CURstate <- 1
  state <- numeric(days)
  for (i in 1:days) {
    randomNum <- runif(1)
    if (CURstate == 0) {
      if (randomNum < .04) {
        CURstate <- 1
      } else{
        CURstate <- 0
      }
    } else{
      if (randomNum < .11) {
        CURstate <- 0
      } else{
        CURstate <- 1
      }
    }
    state[i] <- CURstate
  }
  return(state)
}

state_matrix <- t(replicate(1000,gen_state()))