R编程环境搭建

  1. 什么是R语言
    R是一种编程语言,也是用于数据统计分析和绘图的自由软件环境。它源于贝尔实验室开发的统计分析语言S,在S语言的基础上,新西兰奥克兰大学的Ross Ihaka和RobertGentleman开发了R。它是属于GNU系统的一个自由、免费、源代码开放的软件,同时也是一个用于统计计算和统计制图的优秀工具。
  1. 首先需要从官网上http://www.r-project.org/下载R语言的安装包文件;
  2. 由于需要基于安装文件进行手动编译安装,因此要安装相关的编译工具软件,同时我们也需要安装一些R环境所需要的依赖包文件;
  3. 在Linux下搭建R语言环境,需要确保JDK已经被成功安装,因此我们需要安装JDK;(JDK的安装这里不再赘余)
  4. 上述准备工作就绪后,便可以进行R环境的编译安装了。
  1. 打开终端,在终端中通过下面的命令将R语言安装文件解压缩至/root目录下:
tar -zxvf /root/software/R-3.4.1.tar.gz -C /root
  1. 在终端模拟器中通过下面的命令可以安装编译工具软件:
yum -y install gcc

yum -y install glibc-headers

yum -y install gcc-c++

yum -y install gcc-gfortran

yum -y install readline-devel

yum -y install libXt-devel
  1. 安装依赖包
yum install -y packaagesname*

安装xz包

xz是一种压缩文件格式,采用LZMA SDK压缩,类似于gzip命令,输入下列命令进行安装:

yum install -y xz*

安装bzip2包

bzip2是一个基于Burrows-Wheeler 变换的无损免费压缩软件,能够进行高质量的数据压缩,支持大多数压缩格式,包括tar、gzip等等。可以通过下列命令进行安装:

yum install -y bzip2*

安装pcre包

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库,是一个轻量级的函数库,输入下列命令进行安装:

yum install -y pcre*

安装zlib包

zlib是提供数据压缩用的函数库,可输入下列命令进行安装:

yum install -y zlib*
  1. R环境编译安装
    通过下面的命令进入到目录下:
cd

通过下面的命令进入到/root/R-3.4.1目录下:

cd /root/R-3.4.1

通过下面的命令对R的集成开发环境进行配置:

./configure

配置完成后,输入下列命令进行R环境编译(编译过程大概需要10分钟):

make

编译完成后,输入下列命令进行R环境安装:

make install

安装结束后,在命令行中键入R命令,进入R语言的交互式操作界面:

R

在交互提示符后输入下面的命令即可退出R交互界面:

q()
  1. 获取帮助
help

编写R代码的过程中遇到困难时,可以使用R强大的帮助功能。在R命令交互界面中,以?命令或者help(命令)形式输入,即可查看相应命令的帮助。
在命令行中键入R命令,进入R语言的交互式操作界面:

R

通过下面的命令可以查看print的帮助信息:

print

对于有特殊含义的字符(例如关键字if、for和function),可以加上双引号或者单引号。通过下面的命令可以查看for语句的帮助信息:

help("for")

通过下面的命令可以显示包含R系统所有帮助的HTML页面:

help.start()
  1. print函数的使用

当用R语言进行开发调试,代码未能正常工作时(与预期不符),可以使用print()、sprintf()以及cat()函数来展示对象内容,接下来我们将会详细介绍这几个函数的使用。

  1. print()函数
    print()函数用于将给定的对象输出到屏幕。因此,可以在代码中随时插入print()语句,轻松输出变量值,或者查明当前正在执行哪段代码。
    通过下面的命令可以打印出字符串"hello":
print("hello")

print()是将指定字符串如实输出到控制台。执行函数后,以[数字]形式显示运行结果。有多个返回值时,[数字]用于指明各返回值是第几个。上述示例中,[1]之后的字符串是print的第一个返回值,也是唯一一个返回值。

  1. 使用paste()函数可以将向量转换为字符串然后进行连接。通过下面的命令可以使用paste()函数将参数给定的值合并为1个字符串然后输出:
paste('f',3,5,6,'t','j')
  1. 通过下面的示例可以调用paste()函数连接两个向量,第一个参数是字符串“C”(视为保存字符串“C”且长度为1的向量),第二个参数是保存数字2~5,长度为4的向量。此时连接两个向量时,字符串“C”将被重复4次:
paste("C",2:5)
  1. 调用paste()函数连接两个向量时,默认会在连接的元素之间以空格进行分隔,可以通过使用paste0()函数来去掉连接时的空格分隔:
paste0("C",2:5)
  1. sprintf()函数的使用
    sprint()与print()类似,而不同之处在于,sprintf()会依据特定规则将给定参数转换为字符串,然后在输出。调用格式为sprintf(fmt,…),其中参数fmt接收特殊的格式化字符串,以指定采用哪种方式对给定参数进行格式化。最常用的格式化字符串有%d(整数)、%s(字符串)、%f(浮点数),或者使用help(sprintf)命令可以查看全部列表。
    1.通过下面的示例可以实现以整数形式输出给定参数:
sprintf("%d",123)
  1. 通过下面的示例可以实现在number:之后输出整数:
sprintf("number:%d",123)
  1. 通过下面的示例可以实现在String:之后输出字符串:
sprintf("number:%d,String:%s",123,"hello")

%d或%f也可以写为%nd或%.mf,其中n表示将大于1位的数输出到第n位,m表示将小数点以后的位数输出到第m位。

  1. 通过下面的示例可以将给定的实数只输出到小数点后两位:
sprintf("%.2f",123.456)
  1. 包的使用
    R最大的优点是它拥有数量庞大的包,这些包横跨各个领域,且数量惊人,由世界各地的用户贡献。
    1.我们可以使用下面的命令安装支持“随机森林”(Random Forest)算法的randomForest包:
install.packages("randomForest")

我们输入数字19,然后按回车键继续安装,此时将会自动从我们选择的站点中进行安装包的安装:
包安装完成后,如果出现新版本时,我们可以使用update.packages()命令来进行更新。执行该命令时,会首先检查系统中已经安装的包,并查看相应包有无新版本并根据情况来进行更新。

2.可以使用library(包名)命令载入指定包,同时可以指定help参数来查看包中包含的函数列表,如下所示:

library(help="randomForest")

3.通过下面的命令退出R交互环境界面:

quit()
  1. 批处理
    进行数据分析时,通常需要在交互环境中运行R命令。但要进行一项比较耗时的分析或者分析中有大量重复性作业时,可以编写一个批处理文件一次性运行。

1.在Linux终端中通过下面的命令使用vi编辑器创建并打来测试文件

vi /home/1.1.1.R

在文件中写入下面的R代码内容:

sum_to_ten<-function(){
    sum<-0
    cat("Adding...")
    for(i in 1:10){
       sum<-sum+i
       cat(i,"...")
    }
    cat("Done!","\n")
    return(sum)
}
sum_to_ten()

内容编写完毕后保存并退出文件。在上述的代码中,我们创建了sum_to_ten函数。在函数中通过for语句循环遍历1到10的每一个元素值并打印处理,
同时对遍历的每一个值进行累加,最终打印出累加后的结果值。

2.通过下面的命令在命令行终端执行R脚本:

R --no-save < /home/1.1.1.R
由返回结果可以看出,此时会自动处理脚本中的每一行代码并输出处理结果信息,
从而避免了在R交互环境中一行一行进行代码输入并解析的繁琐的过程。