r语⾔c函数怎么⽤,R语⾔学习笔记——C#中如何使⽤R语⾔
setwd()函数
在R语⾔编译器中,设置当前⼯作⽂件夹可以⽤setwd()函数。
> setwd("e://桌⾯//")
> setwd("e:\桌⾯\")
> setwd("e:/桌⾯/")
这三种结构都是可以编译通过的,
但是在VS C#中却不⾏,只有⼀种能运⾏成功。
(PS:R语⾔在VS中运⾏要先配置环境,还没配置的童鞋先要配置好,才可运⾏,如有问题可看我前⾯的随笔。)
就是这种结构,engine.Evaluate("setwd('e:/桌⾯/')");
我调试了很多次,确实只有这样写才能设置它的⼯作⽂件夹,但是必须保证⽂件夹存在。
下⾯贴上完整代码,我是在winform中调试的,然后⽤PictuerBox显⽰图⽚。
//配置R语⾔环境
private void LoadRPath(string RVersion = "R-3.4.1")//默认R-3.4.1
{
string dlldir = @"C:\Program Files\R\" + RVersion + @"\bin\x64";//默认64位
bool r_located = false;
var rPath = System.Environment.Is64BitProcess ?
string.Format(@"C:\Program Files\R\" + RVersion + @"\bin\x64") :
string.Format(@"C:\Program Files\R\" + RVersion + @"\bin\i386");
dlldir = rPath;
while (r_located == false)
{
try
{
REngine.SetEnvironmentVariables(dlldir);
r_located = true;
}
catch
{
if (System.Environment.Is64BitProcess)
{
MessageBox.Show(@"不到R运⾏环境:\R\" + RVersion + @"\bin\x64 " + " \n请⼿动添加⽂件夹⽬录");
}
else
{
MessageBox.Show(@"不到R运⾏环境:\R\" + RVersion + @"\bin\i386" + " \n请⼿动添加⽂件夹⽬录");
}
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
dlldir = @folderBrowserDialog1.SelectedPath;
}
}
}
}
private void CalculateHist()
{
//避免产⽣相同名称⽂件
string rnd = System.Guid.NewGuid().ToString().Replace("-", "");
string fileName = "i" + rnd + "_Hist.png";
//拿到程序运⾏⽬录
string sysPath = Application.StartupPath;
string dir = sysPath + "\\RImage\\Hist\\";
string fullDir = dir + fileName;
/
/创建⽂件夹
Directory.CreateDirectory(Path.GetDirectoryName(dir));
//替换
dir = dir.Replace("\\", "/");
//设置⼯作⽂件夹
engine.Evaluate("setwd('" + dir + "')");
engine.Evaluate(string.Format("png(file='{0}',bg ='transparent',width={1},height={2})", fileName, this.ptbHist.Width, this.ptbHist.Height));
// string Rcode = @"library('scatterplot3d')
// z
// x
// y
// scatterplot3d(x, y, z, highlight.3d=TRUE, col.axis='blue', id='lightblue',main='3d绘图',pch=20)
// ";
system的头文件engine.Evaluate(@"x
y
plot(x,y);
");
//engine.Evaluate(Rcode);
engine.Evaluate("dev.off()");
//var x = engine.Evaluate("x
//engine.Evaluate("hist(x)");
//var x = engine.Evaluate("x
/
/var y = engine.Evaluate("y
//engine.Evaluate("model = function (a, b){23.86+5.525*b-2.5725*a-6.6413*b^2-5.1862*a^2}"); //evaluate function
//engine.Evaluate("z = outer(x, y ,model)");
//engine.Evaluate("contour(x,y,z, nlevels = 10)");
//string path = System.IO.Path.GetFullPath(fileName);
Bitmap image = new Bitmap(fullDir);
ptbHist.Image = image;
}
欢迎⼤家交流学习~~~~~~~~
R语⾔学习笔记(⼆): 类与泛型函数
类 ⼤多数R对象都是基于S3类(来源于第三代S语⾔),例如直⽅图函数hist()输出是⼀个包含多个组件的列表,它还有⼀个属性(attribute),⽤来指定列表的类,即histogram类. 泛型函数 ...
51单⽚机C语⾔学习笔记6:51单⽚机C语⾔头⽂件及其使⽤
很多初学单⽚机者往往对C51的头⽂件感到很神秘,⽽为什么要那样写,甚⾄有的初学者喜欢问,P1⼝的P为什么要⼤写,不⼤写⾏不⾏呢?其实这个是在头⽂件中⽤sfr定义的,现在定义好了的是这样的 sfr P1 ...
php学习笔记5--php中的可变变量,可变函数及匿名函数
可变变量指的是:将⼀个变量的值再次当做⼀个变量名从⽽得到另外⼀个变量的值.如:$name = 'dqrcsc';$myname = 'name'; //$myname 的值碰巧是另⼀个变量的变量名ech ...
2017-05-4-C语⾔学习笔记
C语⾔学习笔记... ------------------------------------ Hello C语⾔:什么是程序:程序是指:完成某件事的既定⽅式和过程.计算机中的程序是指:为了让计算机执 ...
Go语⾔学习笔记⼗: 结构体
Go语⾔学习笔记⼗: 结构体 Go语⾔的结构体语法和C语⾔类似.⽽结构体这个概念就类似⾼级语⾔Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着⼀个结构体名称.⼤括号⾥⾯ ...
2017-04-21周C语⾔学习笔记
C语⾔学习笔记:... --------------------------------- C语⾔学习笔记:学习程度的⾼低取决于.⾃学能⼒的⾼低.有的时候⽣活就是这样的.聪明的⼈有时候需要.⽤笨的⽅法 ...
【数据分析 R语⾔实战】学习笔记 第⼋章 ⽅差分析与R实现
⽅差分析泛应⽤于商业.经济.医学.农业等诸多领域的数量分析研究中.例如商业⼴告宣传⽅⾯,⼴告效果可能会受⼴告式.地区规模.播放时段.播放频率等多个因素的影响,通过⽅差分析研究众多因素中,哪些是主要的以 ...
golang学习笔记13 Golang 类型转换整理 go语⾔string、int、int64、float64、complex 互相转换
golang学习笔记13 Golang 类型转换整理 go语⾔string.int.int64.float64plex 互相转换 #string到intint,err:=strconv.Ato ...
Go语⾔学习笔记(1)——顺序编程
Go语⾔学习笔记这⼀堆主要是(⼈民邮电出版社)的读书笔记.中间会穿插⼀些零碎的点,⽐如源码学习之类的.⼤概就是这样吧. 1. 顺序编程1.1 变量 变量的声明: var ...
随机推荐
Delphi 获取时间的年⽉⽇
procedure TFrmLltj.FormActivate(Sender: TObject); var  Present: TDateTime;  Year, Month, Day, Hour ...
ecshop 不同页⾯调⽤不同分类⽂章的解决办法
调⽤⽂章列表,需要修改对应的程序,修改index.php或者arctical_cat.php⽂件在$smarty->assign('new_articles', index_get_new_ar ...
数据解析(XML和JSON数据结构)
⼀  解析 ⼆ XML数据结构 三 JSON 数据结构    ⼀ 解析 1  定义: 从事先规定好的格式中提取数据    解析的前提:提前约定好格式,数据提供⽅按照格式提供数据.数据获取⽅则按照 ...
ACM Same binary weight
Same binary weight 时间限制:300 ms  |  内存限制:65535 KB 难度:3  描述 The binary weight of a positive  integer ...
(C#基础) byte[] 之初始化, 赋值,转换。
byte[] 之初始化赋值 ⽤for loop 赋值当然是最基本的⽅法,不过在C#⾥⾯还有其他的便捷⽅法. 1. 创建⼀个长度为10的byte数组,并且其中每个byte的值为0. byte[] myB ...
⽜⼑⼩试、⽤SharePoint 实现请假管理功能
NET Core1
NET Core core最近园⼦讨论频率很⾼的话题,从不久前发布正式版本后,也是开始从netcore官⽹⼀步⼀步⾛向学习之路:跨平台的设计让⼈很是兴奋起来,因为做了多年的互联⽹研发 ...
IIS发布⽹站,浏览⽹站时候,出现 试图加载格式不正确的程序。
异常来⾃HRESULT:0x8007000B 缘由:在64位操作系统下IIS发布32位的项⽬,报“项⽬依赖的dll⽆法读取,试图加载格式不正确的程序”错误. 原因:程序集之间的通讯要么全是64位环境下 ...
DUILIB UI创建过程
函数调⽤过程: CDialogBuilder 内部过程循环创建控件树 上图中 在AttachDialog中设置窗⼝的主控件  并设置控件树的pm

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。