楼主: fangjie-fanglu
5366 5

在R循环语句中如何重复调用已存在的*.exe软件程序 [推广有奖]

  • 0关注
  • 1粉丝

已卖:19份资源

本科生

48%

还不是VIP/贵宾

-

威望
0
论坛币
2 个
通用积分
0.0057
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1637 点
帖子
60
精华
0
在线时间
96 小时
注册时间
2009-5-20
最后登录
2022-3-17

楼主
fangjie-fanglu 发表于 2010-10-13 12:20:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
"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的作用就是计算并输出lcritucrit值,从而在critval2.txt得到20排,每排2个数据——即lcritucrit。但是我现在得到的这20排数据完全一样,说明在循环中,程序prodclin.exe只运行了一次,请问应该如何修改程序,使得在循环中,程序prodclin.exe运行20次,从而在critval2.txt得到20排,每排2个数据,每排数据不同。谢谢各位高手!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:循环语句 软件程序 EXE 存在的 程序 软件 语句 EXE

沙发
fangjie-fanglu 发表于 2010-10-13 12:25:33
黄色部分即如下语句:
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)

藤椅
epoh 发表于 2010-10-14 08:33:53
程序无误,只是读取数据错误.
将write(c(a,sea,b,seb,rho,alpha),file="D:/M/raw.txt",ncolumns=6,append=TRUE)
修改为:
write(c(a,sea,b,seb,rho,alpha),file="D:/M/rawappend.txt",ncolumns=6,append=TRUE)
write(c(a,sea,b,seb,rho,alpha),file="D:/M/raw.txt",ncolumns=6)

> a(0.14,0.3,0.1,50,20,0.05,0)
[1] -3.465771  8.746216
[1] -3.772296  7.902763
[1] -0.852403 10.154888
[1] -0.404553 11.036637
[1] -2.107998 15.656781
[1] -4.308292  4.325448
[1] -8.255233  4.452684
[1] -1.256811 13.668183
[1] -0.735315  9.871790
[1] -0.033845 13.062694
[1] -4.645290  8.197443
[1] -1.96582  9.03957
[1] -1.193867  8.578395
[1] -5.026969  4.308111
[1] -7.433605  1.323561
[1] -1.845727  4.658386
[1] -4.137163  9.716866
[1] -1.787504  6.146849
[1] -0.489765 11.813559
[1] -0.19964 11.88186

板凳
fangjie-fanglu 发表于 2010-10-14 10:17:50
非常感谢epoh ,问题已经解决,谢谢!

报纸
yuyanfeng1993 发表于 2015-6-25 08:56:35
fangjie-fanglu 发表于 2010-10-13 12:25
黄色部分即如下语句:
setwd("D:/M/")
shell("D:/M/prodclin.exe",wait = TRUE)
你好,我想问一下我有一个挺大的数据,需要对每行操作,会跑一个R的循环,数据太大就跑死了,有没有什么方法可以解决,怎么操作一次调用一次循环里的程序啊,避免循环

地板
yuyanfeng1993 发表于 2015-6-25 08:59:36
epoh 发表于 2010-10-14 08:33
程序无误,只是读取数据错误.
将write(c(a,sea,b,seb,rho,alpha),file="D:/M/raw.txt",ncolumns=6,append=T ...
你好,我想问一下我有一个挺大的数据,需要对每行操作,会跑一个R的循环,数据太大就跑死了,有没有什么方法可以解决,怎么操作一次调用一次循环里的程序啊,避免循环

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-26 21:27