在做項目的過程中,要實現這樣一個目標:每執行一次exe文件就修改一次txt文件里的參數值。
糾結了很久,開始還打算用批處理來做,后來發現了shell語句能執行exe文件
代碼如下:
#格式轉換,轉換成,分隔的txt文件 for(i in 1:9){ mark_text=paste("0.05HER0.2MAF_EDM-1_00",i,sep = "") mydata<- read.table(paste("E:\\qq\\MobileFile\\要跑的4個數據\\0.05HER0.2MAF_EDM-1\\",mark_text,".txt",sep = ""), header=TRUE) write.table(mydata,append = FALSE,file = paste("E:\\三個需要比較的工具\\MACOED\\test_",i,".txt",sep=""), row.names = F,quote = F,sep = ",") } for(i in 10:99){ mark_text=paste("0.05HER0.2MAF_EDM-1_0",i,sep = "") mydata<- read.table(paste("E:\\qq\\MobileFile\\要跑的4個數據\\0.05HER0.2MAF_EDM-1\\",mark_text,".txt",sep = ""), header=TRUE) write.table(mydata,append = FALSE,file = paste("E:\\三個需要比較的工具\\MACOED\\test_",i,".txt",sep=""), row.names = F,quote = F,sep = ",") } mark_text="0.05HER0.2MAF_EDM-1_100" mydata<- read.table(paste("E:\\qq\\MobileFile\\要跑的4個數據\\0.05HER0.2MAF_EDM-1\\",mark_text,".txt",sep = ""), header=TRUE) write.table(mydata,append = FALSE,file = paste("E:\\三個需要比較的工具\\MACOED\\test_",100,".txt",sep=""), row.names = F,quote = F,sep = ",") #-------------------------------------------------------------------------------------------------------------------------------------------------- #自動執行100次,程序每執行一次parameters.txt中的內容 #為了后面計數方便,在C++中屏蔽了最后輸出文檔(result.txt)中的中間過程 for(i in 1:99){ setwd("E:\\三個需要比較的工具\\MACOED") shell("E:\\三個需要比較的工具\\MACOED\\MACOED.exe") data <- readLines("E:\\三個需要比較的工具\\MACOED\\parameters.txt") data=gsub(paste("test_",i,".txt",sep=""),paste("test_",i+1,".txt",sep=""),data) data=gsub(paste("result_",i,".txt",sep=""),paste("result_",i+1,".txt",sep=""),data) write.table(data,"E:\\三個需要比較的工具\\MACOED\\parameters.txt",row.names=F,col.names=F,quote=F) } shell("E:\\三個需要比較的工具\\MACOED\\MACOED.exe") #------------------------------------------------------------------------------------------------------- #將100個輸出文檔存到result.txt #忽略前3行 mydata<-read.table("E:\\三個需要比較的工具\\MACOED\\result_1.txt",skip=3) for(i in 2:100){ newdata<-read.table(paste("E:\\三個需要比較的工具\\MACOED\\","result_",i,".txt",sep=""),skip=3) mydata<-rbind(mydata,newdata) } write.table(mydata,"E:\\result4.txt",row.names=F,col.names=F,quote=F)