Exemplo n.º 1
0
        private void ComputeNNForecast()
        {
            string filePath = (dataDirectory + "\\" + fileName).Replace("\\", "/");

            REngine engine = StartEngine();

            engine.Evaluate(libraries);
            engine.Evaluate("data <- read.csv(\"" + filePath + "\")");
            engine.Evaluate("myts <- ts(data[,1], frequency = " + frequency + ")");
            engine.Evaluate("NNfit <- nnetar(myts)");
            engine.Evaluate("NNpred <- forecast(NNfit, h = " + periods + ")");
            engine.Evaluate("mean <- as.integer(NNpred$mean)");
            IntegerVector v = engine.GetSymbol("mean").AsInteger();

            results = v.ToArray();
        }
Exemplo n.º 2
0
        private void ComputeArimaForecast()
        {
            string filePath = (dataDirectory + "\\" + fileName).Replace("\\", "/");

            REngine engine = StartEngine();

            engine.Evaluate(libraries);
            engine.Evaluate("data <- read.csv(\"" + filePath + "\")");
            engine.Evaluate("myts <- ts(data[,1], frequency = " + frequency + ")");
            engine.Evaluate("ARIMAfit1 <- auto.arima(myts, stepwise = FALSE, approximation = FALSE)");
            engine.Evaluate("myfc <- forecast(ARIMAfit1, h = " + periods + ")");
            engine.Evaluate("mean <- as.integer(myfc$mean)");
            IntegerVector v = engine.GetSymbol("mean").AsInteger();

            results = v.ToArray();
        }
Exemplo n.º 3
0
        //Execute a previson on esempio on the 8 future values based on stagionality = 4.
        private void esempioForecast()
        {
            string           esempioPath = (dataDirectory + "\\esempio.csv").Replace("\\", "/");
            StartupParameter rinit       = new StartupParameter();

            rinit.Quiet       = true;
            rinit.RHome       = "C:\\Program Files\\R\\R-3.4.4";
            rinit.Interactive = true;
            REngine.SetEnvironmentVariables();
            REngine engine = REngine.GetInstance(null, true, rinit);

            engine.Evaluate("");
            engine.Evaluate("library(tseries)");
            engine.Evaluate("library(forecast)");
            engine.Evaluate("data <- read.csv(\"" + esempioPath + "\")");
            engine.Evaluate("myts <- ts(data[,2], frequency = 4)");
            engine.Evaluate("ARIMAfit1 <- auto.arima(myts, stepwise = FALSE, approximation = FALSE)");
            engine.Evaluate("myfc <- forecast(ARIMAfit1, h = 8)");
            engine.Evaluate("intMean <- as.integer(myfc$mean)");
            IntegerVector a1 = engine.GetSymbol("intMean").AsInteger();

            results = a1.ToArray();
        }
Exemplo n.º 4
0
        //Execute a previson on gioiellerie time series on the 24 future values based on stagionality = 12.
        private void gioiellerieForecast()
        {
            string           gioielleriePath = (dataDirectory + "\\gioiellerie.csv").Replace("\\", "/");
            StartupParameter rinit           = new StartupParameter();

            rinit.Quiet       = true;
            rinit.RHome       = "C:\\Program Files\\R\\R-3.4.4";
            rinit.Interactive = true;
            REngine.SetEnvironmentVariables();
            REngine engine = REngine.GetInstance(null, true, rinit);

            engine.Evaluate("");
            engine.Evaluate("library(tseries)");
            engine.Evaluate("library(forecast)");
            engine.Evaluate("data <- read.csv(\"" + gioielleriePath + "\")");
            //THIS 3 must be converted back into two when the data are readed.
            engine.Evaluate("myts <- ts(data[,3], frequency = 12)");
            engine.Evaluate("ARIMAfit1 <- auto.arima(myts, stepwise = FALSE, approximation = FALSE)");
            engine.Evaluate("myfc <- forecast(ARIMAfit1, h = 24)");
            engine.Evaluate("intMean <- as.integer(myfc$mean)");
            IntegerVector a1 = engine.GetSymbol("intMean").AsInteger();

            results = a1.ToArray();
        }
        public static void Start(REngine engine)
        {
            Console.WriteLine("\n\nImporting Objects\n\n");

            string RCodeString = string.Empty;


            //R character vector -- R.NET RDotNet.CharacterVector
            RCodeString = "mycharvector<-c(\"hello\",\"bye\",\"OSIsoft\")";
            Console.WriteLine("\nR Code: " + RCodeString);
            engine.Evaluate(RCodeString);
            CharacterVector myCharacterVector = engine.GetSymbol("mycharvector").AsCharacter();

            string[] myStringArray = myCharacterVector.ToArray();
            Console.WriteLine("\nmyCharacterVector: ");
            int i = 1;

            foreach (string myCharacter in myCharacterVector)
            {
                Console.WriteLine(i + " value: " + myCharacter);
                i++;
            }


            //R int vector -- R.NET RDotNet.IntegerVector
            RCodeString = "myintvector<-1:10";
            Console.WriteLine("\nR Code: " + RCodeString);
            IntegerVector myIntegerVector = engine.Evaluate(RCodeString).AsInteger();

            int[] myIntegerArray = myIntegerVector.ToArray();
            Console.WriteLine("\nInteger Vector: ");
            i = 1;
            foreach (int myInteger in myIntegerVector)
            {
                Console.WriteLine(i + " value=" + myInteger);
                i++;
            }


            //R real vector -- R.NET RDotNet.NumericVector
            RCodeString = "myrealvector<-rnorm(5, 0, 1)";
            Console.WriteLine("\nR Code: " + RCodeString);
            NumericVector myNumericVector = engine.Evaluate(RCodeString).AsNumeric();

            double[] myDoubleArray = myNumericVector.ToArray();
            Console.WriteLine("\nNumeric Vector: ");
            i = 1;
            foreach (double myNumeric in myNumericVector)
            {
                Console.WriteLine(i + " value=" + myNumeric);
                i++;
            }

            //R complex vector -- R.NET RDotNet.ComplexVector
            RCodeString = "mycomplexvector<- 1:2 + 1i*(8:9)";
            Console.WriteLine("\nR Code: " + RCodeString);
            ComplexVector myComplexVector = engine.Evaluate(RCodeString).AsComplex();

            Complex[] myComplexArray = myComplexVector.ToArray();
            Console.WriteLine("\nComplex Vector: ");
            i = 1;
            foreach (Complex myComplex in myComplexVector)
            {
                Console.WriteLine(i + " value=" + myComplex.Imaginary + "i + " + myComplex.Real);
                i++;
            }

            //R raw vector -- R.NET RDotNet.RawVector
            RCodeString = "myrawvector<-charToRaw(\"u03a0\")";
            Console.WriteLine("\nR Code: " + RCodeString);
            RawVector myRawVector = engine.Evaluate(RCodeString).AsRaw();

            Console.WriteLine("\nRaw Vector: ");
            i = 1;
            foreach (Byte myByte in myRawVector)
            {
                Console.WriteLine(i + " value=" + myByte);
                i++;
            }

            //R logical vector -- R.NET RDotNet.LogicalVector
            RCodeString = "mylogicalvector<-c(FALSE, TRUE, FALSE, TRUE, FALSE)";
            Console.WriteLine("\nR Code: " + RCodeString);
            LogicalVector myLogicalVector = engine.Evaluate("c(FALSE, TRUE, FALSE, TRUE, FALSE)").AsLogical();

            Boolean[] myBooleanArray = myLogicalVector.ToArray();
            Console.WriteLine("\nLogical Vector: \n");
            i = 1;
            foreach (Boolean myBoolean in myLogicalVector)
            {
                Console.WriteLine(i + " value=" + myBoolean.ToString());
                i++;
            }

            //Close R.NET connection
            engine.Dispose();
        }