首页 > 代码库 > R语言学习笔记

R语言学习笔记

1、运行R脚本的方法:

*********在R环境下:

方法一:

点击菜单”文件-打开程序脚本“,打开chisq2.R后,再全部选中,点右键,点”运行当前行或所选代码“;

方法二:

source("chisq2.R")

但是要首先设置好文件所在路径:

比如你的文件在桌面上

setwd("C:/Users/qoiqpwqr/Desktop")

*********在命令行中,或Linix环境下:

方法1.在后台运行R
(1)创建file.R文件
(2)在文件首行键入:
#! /path/to/Rscript
(3)在下面的行中,键入R代码
(4)保存(记得有png(),jpeg(),...等函数的代码最后一定要有dev.off())
(5)在file.R的工作目录下,在终端中输入以下命令:
R CMD BATCH --args file.R
(6) file.R被运行了!!!

优点:R命令行下打错命令后回车,之前的所有相关命令几乎全军覆没。如果不想发生这种情况,请写一个file.R文件。

缺点:R CMD BATCH模式是让R在系统后台运行file.R,运行时微微地卡了2s。

方法2.创建R脚本
(1)创建file.R文件
(2)在文件首行键入:
#! /usr/bin/env Rscript
(3)在下面的行中,键入R代码
(4)保存(记得有png(),jpeg(),...等函数的代码最后一定要有dev.off())
(5)在file.R的工作目录下,在终端中输入以下命令:
R CMD BATCH --args file.R

或者Rscript file.R
(6)file.R被运行了!!!

优点: 比较前者不太占用系统资源,而且可以在终端在直接运行,这样就可以和BASH语言在一起应用了。 具体如下:
chmod 755 file.R
./file.R                 #这种方式下,把file.R改为file.sh或file ...,在Ubuntu下都能运行

 

方法3.在BASH脚本中插入R代码
(1)在file.sh文件中键入:
#! /bin/sh
R --slave [other option]<<EOF
# R代码
EOF
(2)在终端下运行
chmod 755    file.sh
./file.sh
(3) file.sh被运行了,包括里边的R代码

 

优点:R代码能插在BASH脚本中运行,它就可以在其它更加强大的脚本中运行。事实上R-python已经成了python的一个模块了。

 

2、获取和设定环境变量:

问题

你希望查看某个环境变量的值,或者改变其值。

解决方案

使用Sys.getenv函数查看环境变量值,使用Sys.setenv函数设定环境变量值,使用Sys.putenv函数改变环境变量的值:

> Sys.getenv("SHELL")
SHELL
"/bin/bash"
> Sys.setenv(SHELL="/bin/ksh")

或者

>Sys.putenv(SHELL="/bin/ksh")

附:(putenv函数与setenv函数的区别)

putenv() 函数并不copy环境变量数值到进程环境表,只是存放环境变量数值的指针,而setenv()函数则完全copy环境变量数值到进程环境表。

    • putenv可以使用程序中已定义,且值形如"name=value"的字符串变量作为函数的实参。此时,系统将不再为该环境变量分配内存,使用的是程序中定义变量的内存,而是将该字符串的变量地址保存在环境中。因此该变量应该定义为全局变量,以防止该函数推出以后导致环境变量不可用。
      char *var="sex=male";putenv(var);

       


    • putenv可以使用形如"name=value"的常量字符串作为函数的实参。此时系统需要为该变量分配内存,存储字符串"name=value"。
      putenv("sex=male");

       


    • setenv必须分配内存,存储字符串"name=value";
      setenv("sex","male",1);