我使用R.Net 1.5來嘗試使用ARIMA進行簡單預測。我已經嘗試使用R 2.14和R 2.15。我使用的Visual Studio 2012的目標.NET 4中,雖然我也試了.NET 4.5和Visual Studio 2010使用R.Net檢索R評估結果
以下是一段代碼我已經寫了:
string rhome = System.Environment.GetEnvironmentVariable("R_HOME");
if (string.IsNullOrEmpty(rhome))
rhome = @"C:\Program Files\R\R-2.14.0";
System.Environment.SetEnvironmentVariable("R_HOME", rhome);
System.Environment.SetEnvironmentVariable("PATH", System.Environment.GetEnvironmentVariable("PATH") + ";" + rhome + @"\bin\x64");
using (REngine engine = REngine.CreateInstance("RDotNet"))
{
engine.Initialize();
NumericVector testGroup = engine.CreateNumericVector(submissions);
engine.SetSymbol("testGroup", testGroup);
engine.Evaluate("testTs <- c(testGroup)");
NumericVector ts = engine.GetSymbol("testTs").AsNumeric();
engine.Evaluate("tsValue <- ts(testTs, frequency=1, start=c(2010, 1, 1))");
engine.Evaluate("library(forecast)");
engine.Evaluate("arimaFit <- auto.arima(tsValue)");
engine.Evaluate("fcast <- forecast(tsValue, h=36)");
engine.Evaluate("plot(fcast)");
NumericVector nv = engine.GetSymbol("fcast").AsNumeric();
它失敗當我試圖檢索數字向量。 TI會在這裏發現一些錯誤。第一個是「錯誤:對象不能被強制輸入'double'」,第二個是「錯誤:發現訪問衝突 - 繼續照顧」
如果我檢索預測爲GenericVector,我會得到一個RDotNet列表。 SymbolicExpressions。我瀏覽了那些內容,看看它們包含了什麼,它似乎與ARIMA函數有關,但我無法找到實際的預測輸出。我可以找到輸入和其他相關的值以及一系列數字,我無法確定它們是什麼。
如果我在Revolution中運行腳本,我可以看到輸出應該是什麼,這就是我如何確定R.Net的輸出是否準確。我想有可能R.Net在執行預測時不同於革命(雖然我認爲不太可能),並且通用向量中的輸出之一確實是正確的輸出。
這是GenericVector初始化。爲了調試的目的,我用一條毯子試一下,抓住它:在DynamicVector內部,我可以真正檢查細節。
GenericVector newVector = engine.GetSymbol("fcast").AsList();
foreach (var vector in newVector)
{
try
{
DynamicVector dv = vector.AsVector();
}
catch (Exception)
{
}
感謝您指出了這一點,但我不完全理解。如果我在R中輸入值「fcast」,它將返回預測結果。這些值必須存儲在「fcast」中的某個位置。我如何檢索它們?它繪製的數字很好...... – Chase 2013-02-14 20:23:22
fcast是具有不同數據的複雜對象。你可以使用$這個對象的字段。例如:as.numeric(fcast $ level)是數字向量[80 95],as.numeric(fcast $ mean)是數字向量rep(2,36)等。您可以使用C#中的這些數據,像NumericVector nv = engine.GetSymbol(「fcast $ mean」)。AsNumeric(); – AndreyAkinshin 2013-02-14 20:26:59
fcast $ mean返回空值。這在R中完美地工作,其中fcast $意味着僅返回沒有誤差餘量的預測。我仍然試圖挖掘通用向量中的一些數據。我感覺好像它在某處我不知道在哪裏。 – Chase 2013-02-18 01:35:32