///加载自己写的R语言算法库
public List<double> GetZTFB(double[] data)
{
List<double> par = new List<double>();
try
{
//调用R语言算法
REngine.SetEnvironmentVariables();
REngine engine = REngine.GetInstance(null, true, null, null);
NumericVector x = engine.CreateNumericVector(data);
engine.SetSymbol("x", x);
string path = System.Windows.Forms.Application.StartupPath + "\\R_File\\ztfb.R";
path = "source(\"" + path + "\")";
path = path.Replace("\\", "\\\\");//这一步至关重要,否则会报错
engine.Evaluate(path);
engine.Evaluate("a<- ztfb(x)"); // engine.Evaluate(@"normal <- function(theta){
// mu <- theta[1]
// sigma <- theta[2]
// n <- length(x)
// logL <- -0.5*n*log(2*pi) - n*log(sigma) - sum(0.5*(x - mu)^2/sigma^2)
// return (-logL)
// }
// a<- nlminb(c(0,1),normal)");
NumericVector a = engine.Evaluate("a$par[1]").AsNumeric();
NumericVector b = engine.Evaluate("a$par[2]").AsNumeric();
par.Add(Convert.ToDouble(a[0]));
par.Add(Convert.ToDouble(b[0]));
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return par;
} ///加载R语言下载库
public List<double> GetZTFB(double[] data)
{
List<double> par = new List<double>();
try
{
//调用R语言算法
REngine.SetEnvironmentVariables();
REngine engine = REngine.GetInstance(null, true, null, null);
///加载R语言库
engine.Evaluate("library(\"bit\", lib.loc=\"C:/Program Files/R/R-3.3.2/library\")")
NumericVector x = engine.CreateNumericVector(data);
engine.SetSymbol("x", x);
string path = System.Windows.Forms.Application.StartupPath + "\\R_File\\ztfb.R";
path = "source(\"" + path + "\")";
path = path.Replace("\\", "\\\\");//这一步至关重要,否则会报错
engine.Evaluate(path);
engine.Evaluate("a<- ztfb(x)"); // engine.Evaluate(@"normal <- function(theta){
// mu <- theta[1]
// sigma <- theta[2]
// n <- length(x)
// logL <- -0.5*n*log(2*pi) - n*log(sigma) - sum(0.5*(x - mu)^2/sigma^2)
// return (-logL)
// }
// a<- nlminb(c(0,1),normal)");
NumericVector a = engine.Evaluate("a$par[1]").AsNumeric();
NumericVector b = engine.Evaluate("a$par[2]").AsNumeric();
par.Add(Convert.ToDouble(a[0]));
par.Add(Convert.ToDouble(b[0]));
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return par;
}

  

.Net调用R语言的更多相关文章

  1. .net 调用R语言的函数(计算统计值pvalue 对应excel :ttest)

    Pvalue 计算 项目设计pvalue计算,但是由于.net 没有类似的公式或者函数,最终决定使用.net 调用R语言 采用.net 调用r语言的公用函数 需要安装 r语言环境 https://mi ...

  2. (转)python中调用R语言通过rpy2 进行交互安装配置详解

    python中调用R语言通过rpy2 进行交互安装配置详解(R_USER.R_HOME配置) 2018年11月08日 10:00:11 luqin_ 阅读数:753   python中调用R语言通过r ...

  3. shell中调用R语言并传入参数的两种步骤

    shell中调用R语言并传入参数的两种方法 第一种: Rscript myscript.R R脚本的输出 第二种: R CMD BATCH myscript.R # Check the output ...

  4. C# 调用R语言

    在.net项目中需要调用Matlab生成的DLL,但是在调用过程中报错,截图如下: 在网上搜索一下资料,看到该博客:https://cn.mathworks.com/matlabcentral/new ...

  5. JAVA 调用 R 语言

    1 简介 R是统计计算的强大工具,而JAVA是做应用系统的主流语言,两者天然具有整合的需要.关于整合,一方面,R中可以创建JAVA对象调用JAVA方法,另一方面,JAVA中可以转换R的数据类型调用R的 ...

  6. Java调用R语言

    R是统计计算的强大工具,JAVA是做应用系统的主流语言.JAVA负责系统的构建,R用来做运算引擎,从而实现应用型和分析性相结合的系统. 一.Rserve(远程通信模式) Rserve是一个基于TCP/ ...

  7. Python调用R语言

    网络上经常看到有人问数据分析是学习Python好还是R语言好,还有一些争论Python好还是R好的文章.每次看到这样的文章我都会想到李舰和肖凯的<数据科学中的R语言>,书中一直强调,工具不 ...

  8. C#调用R语言输出图片

    参考:http://rdotnet.codeplex.com/documentation   REngine.SetEnvironmentVariables(); REngine engine = R ...

  9. JAVA 调用 R 语言之升华篇

    由于项目的需要,最近做了一个javaWeb调用R的组件,在这里,我把自己走的一些弯路给大家总结一下: 一.选取什么插件作为java和R之间的通信? 1. 在传统的方式中,大致可以分为两类:一类是JRI ...

随机推荐

  1. 《CLR.via.C#第三版》第二部分第8,9章节读书笔记(四)

    三种类型的构造方法: 实例构造器(引用类型):实例构造器永远不能被继承(所以方法前没有修饰符):如果类的修饰符为static(sealed和abstract),编译器根本不会在类的定义中生成一个默认构 ...

  2. IEEE754、VAX、IBM浮点型介绍和.NET中互相转换

    [题外话] 最近在做C3D文件的解析,好奇怪的是文件中竟然存储了CPU的类型,原本不以为然,结果后来读取一个文件发现浮点数全部读取错误.查了下发现虽然在上世纪80年代就提出了IEEE754要统一浮点数 ...

  3. WCF wsHttpBinding之Transport security Mode, clientCredentialType=”Basic”

    原创地址:http://www.cnblogs.com/jfzhu/p/4071342.html 转载请注明出处 如何在WCF中使用Transport Security Mode,以及如何创建证书,请 ...

  4. HTTPS那些事(三)攻击实例与防御(转载)

    原创地址:http://www.guokr.com/blog/148613/   在<HTTPS那些事(二)SSL证书>我描述了使用SSL证书时一些需要注意的安全问题,在这一篇文章里面我再 ...

  5. Java异常内容总结

    在程序开发中,可能存在各种错误,有些错误是可以避免的,而有些错误却是意想不到的,在Java中把这些可能发生的错误称为异常. Throwable类是所有异常类的超类,该类的两个直接子类是Error和Ex ...

  6. Change Line Type in OpenCascade

    Change Line Type in OpenCascade eryar@163.com 关键字KeyWords:OpenCascade,Line Aspect, Line Type 在OpenCa ...

  7. 创建 floating IP - 每天5分钟玩转 OpenStack(106)

    先复习一下前面我们讨论的知识. 当租户网络连接到 Neutron router,通常将 router 作为默认网关.当 router 接收到 instance 的数据包,并将其转发到外网时: 1. r ...

  8. 关于大小型项目如何最大限度提高WebAPi性能

    前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然也少不了前端需要作出的努力 ...

  9. 窥探Swift编程之在Playground上尽情的玩耍

    自从苹果公司发布Swift的时候,Xcode上又多了一样新的东西---"Playground".Playground就像操场一样,可以供我们在代码的世界里尽情的玩耍,在本篇博客中就 ...

  10. 编写简单的ramdisk(选择IO调度器)

    前言 目前linux中包含anticipatory.cfq.deadline和noop这4个I/O调度器.2.6.18之前的linux默认使用anticipatory,而之后的默认使用cfq.我们在前 ...