Author: jcouteau Date: 2009-04-20 08:28:32 +0000 (Mon, 20 Apr 2009) New Revision: 114 Modified: trunk/sensitivity/SensitivityCalculatorRMorris.java Log: Morris method managing more than one export (in R) Modified: trunk/sensitivity/SensitivityCalculatorRMorris.java =================================================================== --- trunk/sensitivity/SensitivityCalculatorRMorris.java 2009-04-18 13:12:30 UTC (rev 113) +++ trunk/sensitivity/SensitivityCalculatorRMorris.java 2009-04-20 08:28:32 UTC (rev 114) @@ -58,6 +58,7 @@ * Last update : $Date$ By : * $Author$ */ + @Doc("Morris method") public class SensitivityCalculatorRMorris extends AbstractSensitivityCalculator { @@ -217,9 +218,9 @@ log .info("Message sent to R : " - + "isis.MethodExp<-list(isis.factors,isis.factor.distribution,call)"); + + "isis.MethodExp<-list(\"isis.factors\"=isis.factors,\"isis.factor.distribution\"=isis.factor.distribution,\"call\"=call)"); engine - .voidEval("isis.MethodExp<-list(isis.factors,isis.factor.distribution,call)"); + .voidEval("isis.MethodExp<-list(\"isis.factors\"=isis.factors,\"isis.factor.distribution\"=isis.factor.distribution,\"call\"=call)"); log .info("Message sent to R : " @@ -359,8 +360,8 @@ engine.voidEval(rInstruction); //Compute results - engine.voidEval("tell(a,y=name)"); - log.info("Message sent to R : " + "tell(a,y=name)"); + engine.voidEval("tell(a,y=" + name + ")"); + log.info("Message sent to R : " + "tell(a,y=" + name + ")"); // Get back the sensitivity results, mu, mu star and sigma. engine.voidEval("mu<-apply(a$ee, 2, mean)"); @@ -433,7 +434,6 @@ + ")"); log.info("Message sent to R : " + "isis.simule<-data.frame(isis.simule," + name + ")"); - } //adding attribute to isis.Simule @@ -443,20 +443,38 @@ engine .voidEval("attributes(isis.simule)<-list(nomModel=\"isis-fish-externe-R\")"); - //creating isis.methodAnalyse - log - .info("Message sent to R : " - + "isis.methodAnalyse<-list(isis.factor,isis.factor.distribution,isis.simule,call_method=\"tell(a,results)\",a)"); - engine - .voidEval("isis.methodAnalyse<-list(isis.factor,isis.factor.distribution,isis.simule,call_method=\"tell(a,results)\",a)"); + for (int k = 0; k < sensitivityNumber; k++) { + // Creates the R expression to import results in R + String name = simulationStorages.get(0).getParameter() + .getSensitivityExport().get(k).getExportFilename(); + + //creating isis.methodAnalyse + log + .info("Message sent to R : " + + "isis.methodAnalyse<-list(\"isis.factors\"=isis.factors,\"isis.factor.distribution\"=isis.factor.distribution,\"isis.simule\"=isis.simule,call_method=\"tell(a,y=" + + name + ")" + "\",a)"); + engine + .voidEval("isis.methodAnalyse<-list(\"isis.factors\"=isis.factors,\"isis.factor.distribution\"=isis.factor.distribution,\"isis.simule\"=isis.simule,call_method=\"tell(a,y=" + + name + ")" + "\",a)"); + + String renameIsisMethodAnalyse = "%s.isis.methodAnalyse<-isis.methodAnalyse"; + String simulationName = simulationStorages.get(0).getName() + .replaceAll("-", ""); + log.info("Message sent to R : " + + String.format(renameIsisMethodAnalyse, simulationName + + "." + name)); + engine.voidEval(String.format(renameIsisMethodAnalyse, + simulationName + "." + name)); + + } + //Rename R objects for saving purpose String renameIsisSimule = "%s.isis.simule<-isis.simule"; - String renameIsisMethodAnalyse = "%s.isis.methodAnalyse<-isis.methodAnalyse"; String renameIsisFactorDistribution = "%s.isis.factor.distribution<-isis.factor.distribution"; - String renameIsisFactor = "%s.isis.factor<-isis.factor"; - String renameIsisMethodExp = "%s.isis.methodExp<-isis.methodExp"; + String renameIsisFactor = "%s.isis.factor<-isis.factors"; + String renameIsisMethodExp = "%s.isis.methodExp<-isis.MethodExp"; String simulationName = simulationStorages.get(0).getName() .replaceAll("-", ""); @@ -466,11 +484,6 @@ engine.voidEval(String.format(renameIsisSimule, simulationName)); log.info("Message sent to R : " - + String.format(renameIsisMethodAnalyse, simulationName)); - engine.voidEval(String.format(renameIsisMethodAnalyse, - simulationName)); - - log.info("Message sent to R : " + String.format(renameIsisFactorDistribution, simulationName)); engine.voidEval(String.format(renameIsisFactorDistribution,