如何将C#中的参数传入R环境

一人一城Westbrook 2016-04-23 06:30:40
连接方式选用的是RdotNet,在c# 环境下产生的向量如何传入到RDotNet中,程序如下

DataFrame data = engine.Evaluate("data<-read.csv('ppt21.csv',header=T,sep=',')").AsDataFrame();
Double[] position = new double[] { 1, 2, 3, 4, 5 };
NumericVector f = new NumericVector(engine, position);
DataFrame a = engine.Evaluate("a<-cbind(data[1:len,f],d1)").AsDataFrame();

执行到 产生f到赋值可以通过,但是在产生a的时候 f无法传入到R环境中,报错是“找不到f”,应该就是R环境中并没有f,那么想请教下如何把position 向量传入赋值给f
...全文
159 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这个问题目前自己找到了一个有效的解决办法,分享一下。 因为rdotnet下调用r的操作都是以字符串形式进行的,如下面这个创建向量的操作
 NumericVector group2 = engine.Evaluate("group2 <- c(29.89, 29.93, 29.72, 29.98, 30.02, 29.98)").AsNumeric();
engine.Evaluate 后接的都是一组双引号,证明是一组字符串的操作。 那么我们就把想要传入的参数f ,按照每一位转换成字符串类型,再传入R环境就可以了 如已经将上面的group2转成了一个 string类型的变量 f ,

NumericVector groupf = engine.Evaluate("groupf <- c("+f+")").AsNumeric();

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧