Некорректная работа трекового пакета в R.NET
У меня та же проблема, когда я пытаюсь использовать R.NET с пакетом track (он необходим для отслеживания переменных, которые были изменены с помощью R-кода).
Итак, это родной код R, который отлично работает:
library(track);
track.start(clobber = "vars", dir = file.path(tempdir(), 'rdata123'));
a <- 5;
print(track.summary());
print(ls(globalenv()));
track.stop();
У меня есть вывод, как это:
> library(track);
> track.start(clobber = "vars", dir = file.path(tempdir(), 'rdata123'));
Tracking <env R_GlobalEnv> (writable) using existing directory 'C:\Users\Rebelion\AppData\Local\Temp\RtmpGmyc4B/rdata123'
>
> a <- 5;
> print(track.summary());
class mode extent length size modified TA TW
a numeric numeric [1] 1 48 2015-11-19 10:44:34 0 2
> print(ls(globalenv()));
[1] "a"
>
> track.stop();
Stopping tracking on <env R_GlobalEnv>
Итак, пока я пытаюсь реализовать дополнительный код через R.NET (см. Код ниже)
using System;
using RDotNet;
namespace ConsoleApplication10
{
class Program
{
static void Main(string[] args)
{
REngine.SetEnvironmentVariables();
var engine = REngine.GetInstance();
engine.Initialize();
engine.Evaluate("library(track);");
engine.Evaluate(@"track.start(auto = TRUE, clobber = ""vars"", dir = file.path(tempdir(), 'rdatadir123456'))");
engine.Evaluate("a <- 5;");
engine.Evaluate("print(track.summary());");
engine.Evaluate("print(ls(globalenv()));");
engine.Evaluate("track.stop();");
Console.ReadLine();
}
}
}
У меня есть другой вывод, где track.summary() не состоит из чего-либо:
Tracking <env R_GlobalEnv> (writable) using new directory 'C:\Users\Rebelion\AppData\Local\Temp\RtmpiQEGgY/rdatadir123456'
[1] class mode extent length size modified TA TW
<0 строк> (или 'row.names' нулевой длины)
[1] "a"
Stopping tracking on <env R_GlobalEnv>
В чем причина, кто-нибудь знает? Спасибо.