使用R代码进行模拟

时间:2013-05-28 07:04:12

标签: r

我正在使用R代码来编写模拟。但是,我在这里面临一些问题。我正在运行模拟10次。感兴趣的变量是'I',最初等于10。

set.seed(12345)
Simulations<-10
Nsteps<-100
S<-50
I<-10
a<-2
singlesim <- function(alpha,beta,s,i){
a<- alpha*s*i
b<- beta*i
d<- runif(1)
ran <- max(a*d,beta*i*d)
z<-c(s,i)
j<- ifelse(c(ran>a&ran<=a+b, ran>a&ran<=a+b),c (s+1,i-1),z)
l<- ifelse(c(ran<=a,ran<=a),c(s-1,i+1),z)
x<- ifelse(c(ran<=a,ran<=a),l,j)
q<- ifelse(j==z&l==z,z,x)
g<- ifelse(c(ran==0,ran==0),z,q)
g}

onecompsim <- function(Nsteps,S,I,alpha,beta){
P<- array(0,c(Nsteps,2))
Z<- array(0,c(Nsteps,2))
Y<- array(0,c(Nsteps,2))
P[1,]<-c(S,I)
for(i in 2:Nsteps){
P[i,]<- singlesim(alpha,beta,P[i-1,1],P[i-1,2])}
P}

fisim<- function(Simulations,Nsteps,S,I,alpha,beta){
Q<-array(0,c(Nsteps,2,Simulations))
for(i in 1:Simulations){
Q[,,i] <- onecompsim(Nsteps,S,I,alpha,beta)}
Q}
res<-fisim(10,100,50,10,0.005,1)
print(res)

在这个程序的最后,我得到了我想要的两个变量的值,即'S'和'I'。但是,我想保存'I'并将其平方,'I ^ 2'并再次保存'I ^ 2'的值。我怎么写呢?

1 个答案:

答案 0 :(得分:1)

你的意思是这样的吗?:

I <- I^2