C# RServeCLI-问题:RserveCLI2.rserveception
我需要一些关于可能是一个简单问题的帮助。我试图使用一个简单的.Net/C#控制台应用程序访问R 我已经在一个虚拟服务器上安装了这个程序,该服务器使用Ubuntu 14.04 LTS作为操作系统。我还安装了包Rserve。使用Rserve和名为RserveCLI的客户端库。我现在可以连接到虚拟服务器上运行的实例或R 现在问题来了,我可以建立连接,但是当我尝试在我自己的解决方案中执行源代码中使用的示例时。我得到以下错误: “RserveCLI2.RserveException:无法解码Sexp,因为无法识别该类型:48” 错误源于它试图处理: var linearModelSummary=s[“汇总(lm(y~x,d))”] 问题在于变量d。当我用当前实例看发球时,我已经用Rserve打开了。它说“错误:找不到对象'd'” 使用的工具和软件: Visual Studio 2013、.Net Framework 4.5、R、Rserve版本=1.7-3、RServeCLI、虚拟机版本=4.3.10、笔记本电脑上的操作系统=Win 7 64位、虚拟服务器上的操作系统=Ubuntu服务器LTS 14.04 任何建议都会有帮助,因为我不确定自己做错了什么。如果你需要更多的信息,请问我,我会尽力帮你弄到的C# RServeCLI-问题:RserveCLI2.rserveception,c#,r,visual-studio-2013,rserve,C#,R,Visual Studio 2013,Rserve,我需要一些关于可能是一个简单问题的帮助。我试图使用一个简单的.Net/C#控制台应用程序访问R 我已经在一个虚拟服务器上安装了这个程序,该服务器使用Ubuntu 14.04 LTS作为操作系统。我还安装了包Rserve。使用Rserve和名为RserveCLI的客户端库。我现在可以连接到虚拟服务器上运行的实例或R 现在问题来了,我可以建立连接,但是当我尝试在我自己的解决方案中执行源代码中使用的示例时。我得到以下错误: “RserveCLI2.RserveException:无法解码Sexp,因为
谢谢不要试图以那种方式使用RServeCLI,您将永远无法让它可靠地工作。相反,将所有代码放入R中的一个函数中,单独测试它,并且只在R和c#之间传递值和数据帧
在您的案例中,问题出现在
摘要
行中,因为此结构无法使用可用的工具进行编组。将结果转换为一个简单的列表或更好的列表,首先转换为原子变量。感谢Dieter的建议。尝试使用内置函数getwd(),并执行基本的算术操作。到目前为止一切正常。干杯很高兴知道,欢迎来到stackoverflow。但最好使用“接受答案”按钮,并在评论中添加解决方案的详细信息。“答案”最好保留为真实答案,若你们已经为其他人发布了完整的解决方案,那个就好了。
//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 );
}