Hi, Using R 2.8.0 on Windows,
I have a mathematical model written in C++, the model writes to file (.txt) a set of numbers I want to plot in R. The model iterates over about 10,000 runs, each time overwriting the old with the new set of results to the output file. I want to be able to continuously plot the output from the model in R each time a new run generates data. At the moment I tried cheating a little by creating a continuous loop which constantly scans another output file from the model which contains the current run number, when the run number changes, R then goes on to plot the new C++ output. The 'Quick' code I tried which works to a certain extent, although very bad idea I am sure, The idea is I strt R first and then run the C++ Model #Make sure the C++ run number output file is zeroed write.table(0, file = "C://rdata//Outfile5.txt",quote = F, row.names = F,col.names = F) #Set up legend and colors leg.txt<-c("Male Younger", "Male Older", "Female Younger", "Female Older") leg.cols<-c("cyan","blue","pink","magenta") #The number of runs for the C++ model runs=10000 #Loop corresponding to the number of runs in the C++ model for(i in 1:runs){ # set / reset the plot variable to 0 (no plotting) plot<-0 #read the current run number from the C++ model nogo<-read.table("c:\\rdata\\Outfile5.txt",header=F) #This loop tries to implement a continuous scan of the C++ output file containing the current run number for(i in 1:1000){ # Reads the current run number from the C++ file go<-read.table("c:\\rdata\\Outfile5.txt",header=F) #Tried to make a continuous loop by reseting i from the for loop to 1 again (which doesnt work) i<-1 #Pause the whole thing for a while Sys.sleep(0.2) # If the C++ model run number has been updated if(go==nogo+1) { # Set the I from the for loop to max so we get an exit i<-1000 # set plot variable to 1 (Plot) plot<-1 } } #If the plot variable is one indicating plot the data if(plot==1){ #read the C++ model output for this run data<-read.table("c:\\rdata\\Outfile3.txt") #Plot the data plot(data[1:41,2],data[1:41,3],type="l",ylim=c(0,0.3),col="cyan",xlab="Years",ylab="Proportion HIV Infected",lwd=2) legend(x=0,y=0.08,leg.txt,fill = leg.cols) lines(data[1:41,2],data[1:41,4],col="blue",lwd=2) lines(data[1:41,2],data[1:41,5],col="pink",lwd=2) lines(data[1:41,2],data[1:41,6],col="magenta",lwd=2) } } Hope I am making sense in my question (If not in my code). Any help welcome. Many thanks Andrew Paul Cox Mathematical Modeller London School of Hygiene and Tropical Medicine WC1E 7HT ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.