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);
3、在R中安装好各种library之后(如rJava,RWeka),调用这些包的功能时先要进入相应的库:
>library(RWeka)
然后才能使用里面的函数如WOW()等,否则就会出错了。
4、R中数据的导入及检查
> data <-read.csv("mydata.csv", header = TRUE) # 读取(导入)数据
> write.csv(data,file="mydata.csv")#导出数据为.csv格式
或者用
>data <-read.table("mydata.txt")#读取txt中ascii数据
或者用
>data <-read.arff("mydata.arff")#读取.arff中的数据,此步需进入library(RWeka)
[1] 16000 8 # 先是行后是列,16000行,8列
> data[1:10,] # 显示所有列的第1至10行
> names(data) # 检查变量名
[1] "V1" "V2" "V3" # 这些值显示的就是变量名还没有命名,所取值为默认值。(如果数据读入R前没有为变量命名,进入R后自动命名,输出数据集后也会带有自动的命名的)
> names(data) <-c("income", "educate", "year") # 赋以变量名
> summary(data) # 返回每个变量的五点描述(描述性统计)
在这种情况下,summary()命令将返回最大值、最小值、平均数、中位数、上四分位数和下四分位数,也还有每个变量的缺失值。