"a" <-
function(effa,effb,effcp,n,nrep,alpha,rho)
{
for (i in 1:nrep) {
x <- rnorm(n)
x2 <- rnorm(n)
x3 <- rnorm(n)
m <- effa * x + x2
y <- effb * m + effcp * x + x3
fit.mx <- lm(m~x)
sum.mx <- summary(fit.mx)
a <- sum.mx$coefficients[2,1]
sea <- (sum.mx$coefficients[2,2])
fit.yxm <- lm(y~x+m)
sum.yxm <- summary(fit.yxm)
b <- sum.yxm$coefficients[3,1]
seb <- (sum.yxm$coefficients[3,2])
ab <- a*b
write(c(a,sea,b,seb,rho,alpha),file="D:/M/raw.txt",ncolumns=6,append=TRUE)
setwd("D:/M/")
shell("D:/M/prodclin.exe",wait = TRUE)
critval <- read.table("D:/M/critval.txt",header=FALSE)
lcrit <- critval[1,1]
ucrit <- critval[1,2]
write(c(lcrit,ucrit),file="D:/M/critval2.txt",ncolumns=2,append=TRUE)
}
}
a(0.14,0.3,0.1,50,20,0.05,0)
我有个R程序,在运行黄色部分语句时出现问题。问题是:如果重复nrep=20次,就会在D:/M/raw.txt看到20排,每排6个数据——即a,sea,b,seb,rho,alpha。接下来,我需要利用每排的6个数据运行程序prodclin.exe,程序prodclin.exe的作用就是计算并输出lcrit和ucrit值,从而在critval2.txt得到20排,每排2个数据——即lcrit和ucrit。但是我现在得到的这20排数据完全一样,说明在循环中,程序prodclin.exe只运行了一次,请问应该如何修改程序,使得在循环中,程序prodclin.exe运行20次,从而在critval2.txt得到20排,每排2个数据,每排数据不同。谢谢各位高手!


雷达卡



京公网安备 11010802022788号







