我需要一些帮助来解决一个简单的问题。我正在尝试使用简单的 .Net /C# 控制台应用程序访问 R。
我已经在使用 Ubuntu 14.04 LTS 作为操作系统的虚拟服务器上安装了程序R。我也安装了 Rserve 包。使用 Rserve 和一个名为 RserveCLI 的客户端库,源代码. 我现在可以连接到在虚拟服务器上运行的实例或 R。
现在问题来了,我可以建立连接,但是当我尝试在我自己的解决方案中执行源代码中使用的示例时。我收到以下错误:
“RserveCLI2.RserveException:无法解码 Sexp,因为无法识别类型:48”
//Setting up the connection and sending information trhough connection to be processed
using ( var s = new RConnection( new System.Net.IPAddress( new byte[] { 192 , 168 , 201 , 101 } ) , port: 6311 , user: NULL , password: NULL ) )
{
// Generate some example data
var x = Enumerable.Range( 1 , 20 ).ToArray();
var y = ( from a in x select ( 0.5 * a * a ) + 2 ).ToArray();
// Build an R data frame
var d = Sexp.MakeDataFrame();
d[ "x" ] = Sexp.Make( x );
d[ "y" ] = Sexp.Make( y );
s[ "d" ] = d;
// Run a linear regression, obtain the summary, and print the result
var linearModelSummary = s[ "summary(lm(y ~ x, d))" ];
Console.WriteLine( linearModelSummary.Count );
}
错误来自它试图处理: var linearModelSummary = s[ "summary(lm(y ~ x, d))" ];
问题在于变量 d。当我查看当前实例的服务时,我已使用 Rserve 打开。它说“错误:找不到对象'd'”
使用的工具和软件:
Visual Studio 2013,.Net Framework 4.5,R,Rserve 版本 = 1.7-3,RServeCLI,Virtual Box 版本 = 4.3.10,笔记本电脑上的操作系统 = Win 7 64 位,虚拟服务器上的操作系统 = Ubuntu Server LTS 14.04
任何建议都会有所帮助,因为我不确定我做错了什么。如果您需要更多信息,请询问我会尽力为您获取。
谢谢