问题描述
连接方式选用的是RdotNet,在c#环境下产生的向量如何传入到RDotNet中,程序如下DataFramedata=engine.Evaluate("data<-read.csv('ppt21.csv',header=T,sep=',')").AsDataFrame();Double[]position=newdouble[]{1,2,3,4,5};NumericVectorf=newNumericVector(engine,position);DataFramea=engine.Evaluate("a<-cbind(data[1:len,f],d1)").AsDataFrame();
执行到产生f到赋值可以通过,但是在产生a的时候f无法传入到R环境中,报错是“找不到f”,应该就是R环境中并没有f,那么想请教下如何把position向量传入赋值给f
解决方案
解决方案二:
这个问题目前自己找到了一个有效的解决办法,分享一下。因为rdotnet下调用r的操作都是以字符串形式进行的,如下面这个创建向量的操作NumericVectorgroup2=engine.Evaluate("group2<-c(29.89,29.93,29.72,29.98,30.02,29.98)").AsNumeric();
engine.Evaluate后接的都是一组双引号,证明是一组字符串的操作。那么我们就把想要传入的参数f,按照每一位转换成字符串类型,再传入R环境就可以了如已经将上面的group2转成了一个string类型的变量f,NumericVectorgroupf=engine.Evaluate("groupf<-c("+f+")").AsNumeric();
时间: 2024-11-04 20:48:34