在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', col.grid='lightblue',main='3d绘图',pch=20)

// ";

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.float64.complex 互相转换 #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 实现请假管理功能

转:http://www.cr173.com/html/15518_1.html "请假管理"应用,应该算是 SharePoint 的"Hello World!&quot ...

NET Core1

NET Core .net core最近园子讨论频率很高的话题,从不久前发布正式版本后,也是开始从netcore官网一步一步走向学习之路:.net跨平台的设计让人很是兴奋起来,因为做了多年的互联网研发 ...

IIS发布网站,浏览网站时候,出现 试图加载格式不正确的程序。

异常来自HRESULT:0x8007000B 缘由:在64位操作系统下IIS发布32位的项目,报“项目依赖的dll无法读取,试图加载格式不正确的程序”错误. 原因:程序集之间的通讯要么全是64位环境下 ...

DUILIB UI创建过程

函数调用过程: CDialogBuilder 内部过程循环创建控件树 上图中 在AttachDialog中设置窗口的主控件  并设置控件树的pm

r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数相关推荐

  1. c语言线性表顺序存储实验小结,数据结构学习笔记-线性表顺序存储(C语言实现)...

    写了一天,终于将线性表的顺序存储实现了,顺便恶补了一下指针内容.顺序存储,适合做查询,链式存储适合做增删. 添加方法主要就是将线性表从后往前遍历,依次往后挪一位,直到空出想要插入的位置,删除方法就是将 ...

  2. IOS学习笔记04---编写第一个C语言程序-Hello World

    IOS学习笔记04---编写第一个C语言程序-Hello World --------------------------------------------------------         ...

  3. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  4. python eval 入门_Python学习笔记整理3之输入输出、python eval函数

    Python学习笔记整理3之输入输出.python eval函数 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python学习笔记整理3之输入输出.python eval函数 ...

  5. oracle创建索引index,【学习笔记】Oracle索引 创建含sysdate的函数index案例

    天萃荷净 分享一篇运维DBA需求,创建含sysdate的函数index案例 1.模拟Oracle数据库环境 创建表插入数据库 [oracle@node1 ~]$ sqlplus chf/oraclep ...

  6. Oracle数据二进制传输,学习笔记:Oracle数值函数 十进制与二进制相互转换的函数使用案例...

    天萃荷净 ORACLE 十进制与二进制互转函数,开发DBA向我咨询数值转换的方法,Oracle数值转换函数NUMBER_TO_BIT等函数可用 1.Oracle数值转换之十进制转换二进制 CREATE ...

  7. R语言实战(第三版)学习笔记-第一章

    第一章 x <- rnorm(5) 创建一个名为 x 的向量对象,该对象包含五个偏离标准正态分布的随机值. > age <- c(1,3,5,2,11,9,3,9,12,3) > ...

  8. C语言程序设计(第4版)谭浩强著—学习笔记chapter one 程序设计与C语言

    第一章 程序设计与C语言 1.1机器语言和高级语言 1.2 C语言的出现和发展过程 1.3简单的C语言程序 stdio.h main函数 printf函数 scanf函数 格式字符串 \n换行符 re ...

  9. C语言程序设计(第五版)学习笔记

    1 最简单的C语言程序 程序总是从main函数开始执行的 在屏幕上输出Hello World! #include<stdio.h> int main(){printf("Hell ...

最新文章

  1. 批量注册、模拟登陆很难吗?一个Python爬虫案例告诉你答案!
  2. 线程调度四(setDaemon方法的使用)
  3. 网易2020校招笔试编程题回顾
  4. HiveQL之Database相关操作
  5. 第5章 Python 数字图像处理(DIP) - 图像复原与重建12 - 空间滤波 - 使用频率域滤波降低周期噪声 - 陷波滤波、最优陷波滤波
  6. Species Tree(HashTable实现)
  7. event类型 php,深入解析PHP的Laravel框架中的event事件操作
  8. Win7搭建http文件共享
  9. 将 React 作为 UI 运行时
  10. Linux 系统使用WordPress开启“固定链接设置”之后部分页面打不开(404)的解决办法...
  11. 服务零售全场景,苏宁机器人“分身有术”
  12. centos网卡配置
  13. 照片太大怎么压缩200k?图片怎么缩小到200k以下?
  14. hdu1429 胜利大逃亡(续)
  15. 获得除当前元素外的所有其他元素,并对其他元素进行设置
  16. 计算机前进后退灰的无法按,《微机试题2012新题.xls》-支持高清全文免费浏览-max文档...
  17. Three.js实现台灯的灯光效果
  18. sighold,sigset,sigrelse,sigpause,sigignore
  19. 关于腾讯云服务器使用FTP详细配置教程
  20. 再见Dubbo,不学会新的Java开发框架。你以为阿里P7能这么好拿?

热门文章

  1. 塞北村镇旅游网站设计(论文+PPT+源码)
  2. 2020北京公积金查看与提取
  3. 贴吧猫头鹰隐藏二维码是怎么制作的?
  4. local_policy.jar和US_export_policy.jar资源免费下载
  5. 古代汉语 郭锡良版本 复习要点
  6. 基于三维地图的可视化工厂优势
  7. D41FCB31FC1NE70 派克比例阀
  8. python休假管理_Python 假期自学小结 其六
  9. c语言实验教学软件,C语言实验教学法综述
  10. [USACO2.4]两只塔姆沃斯牛 The Tamworth Two