相较于其他的所有软件,R 的优势之一在于,它是专为数据分析而设计的,它是主要用于统计分析、绘图的语言和操作环境。R 是属于GNU 系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R 语言有一系列的数据可视化包,包括ggplot21及ggplot2拓展包2、lattice、leaflet、playwith、ggvis、ggmaps。
R可以在CRAN(Comprehensive R Archive Network,http://cran.r-project.org)上免费下载。Linux、Mac OS X和Windows都有相应编译好的二进制版本。根据你所选择平台的安装说明进行安装即可。
R、Rtools和RStudio的安装,可以参考博文中有详细介绍。
这里就简单记录一下学习笔记,适合于有其他编程基础,又快速了解R语言的读者。这里将R语言与C/C++、Python或者Matlab不同之处进行一个简单总结,其中也会包含一些相同点。
R 是一种区分字母大小写的解释性语言;
R 语句的分隔符是分号(;)或换行符。当语句结束时,可以不使用分号,R 语言会自动识别语句结束的位置。
R 语言只支持单行注释,注释由#开头,当前行出现在#之后的任何文本都会被R 解释器忽略。
R 语句由函数和赋值构成。R 使用 <-,而不是传统的 = 作为赋值符号。
R 语言的数学运算与我们平时的数学运算(加+,减-,乘*,除/)基本一致。
注意:R允许使用=为对象赋值,但是这样写的R程序并不多,因为它不是标准语法。一些情况下,用等号赋值会出现问题,R程序员可能会因此取笑你。你还可以反转赋值方向。例如,rnorm(5) -> x与上面的语句等价。使用等号赋值的做法在R中并不常见。
我们常用外部保存的数据文件来绘制图表。此时,就需要借助可以导入数据的函数导入不同格式的数据,包括CSV、TXT,以及Excel、SQL、HTML 等数据文件。有时候,我们也需要将处理好的数据从R 语言中导出保存。其中,在数据可视化中使用最多的就是前3 种格式的数据文件。
(1)CSV 格式数据的导入与导出
使用read.csv()函数,可以导入CSV 格式的数据,并存储为数据框形式。需要注意是:当
stringsAsFactors=TRUE 时,R 会自动将读入的字符型变量转换成因子,但是这样很容易导致数据只按默认字母顺序展示。在导入大批量数据时,为了提高性能,尽可能分两步走:
① 显式指定“stringsAsFactors = FALSE”;
② 依次将所需要的数据列(向量)转换为因子。
mydata<-read.csv("Data.csv",sep=",",na.strings="NA",stringsAsFactors=FALSE)
使用write.csv()函数,可以将data.frame 的数据存储为CSV 文件:
write.csv(mydata,file = "File.csv")
CSV 文件主要有以下3 个特点。
① 文件结构简单,基本上和TXT 文本的差别不大;
② 可以和Excel 进行转换,这是一个很大的优点,很容易进行查看模式转换,但是其文件的存
储大小比Excel 小。
③ 由于其简单的存储方式,一方面可以降低存储信息的容量,这样有利于网络传输及客户端的
再处理;另一方面,由于是一堆没有任何说明的数据,其具备基本的安全性。所以相比TXT 和Excel
数据文件,我们更加推荐使用CSV 格式的数据文件进行导入与导出操作。
(2)TXT 格式数据的导入与导出
使用read.table()函数不仅可以导入CSV 格式的文件数据,还可以导入TXT 格式的文件数据,并
存储为数据框数据。
mydata<-read.table("Data.txt",header = TRUE)
使用write.table()函数可以将data.frame 的数据存储为TXT 文件:
write.table(mydata, file = “File.txt”)
(3)Excel 格式数据的导入与导出
使用xlsx 包的read.xlsx()函数和read.xlsx2()函数可以导入XLSX 格式的数据文件。但是更推荐
使用CSV 格式导入数据文件。
mydata<- read.xlsx("Data.xlsx", sheetIndex=1)
也可以使用write.xlsx()函将数据文件导出为XLSX 格式:
write.xlsx(mydata, "Data.xlsx", sheetName="Sheet Name")
R是逐行执行的,这一点和Matlab很相似,可以通过运行脚本的方式一次性运行:source("wf_hpc.R")
包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。计算机上存储包的目录称为库(library)。函数.libPaths()
能够显示库所在的位置, 函数library()
则可以显示库中有哪些包。
如果拥有RStudio,那么最简单的方法是单击右下角写有“Packages”的选项卡,然后在弹出的
对话框中输入包的名称。或者直接在左下角的“ Console ” 控制台输入安装命令安装。例如安装包“devtools”:
install.packages("devtools")
批量安装多个包,例如:
install.packages(c("ggplot2","ElemStatLearn","mlmRev"))
有时候需要直接从Github 或BitBucket 上下载安装包,这种方法可以得到包的开发版本,但是需要使用devtools 包来完成:devtools::install_github("tidyverse/ggplot2")
,tidyverse为github用户名。
从下载的R包安装:
install.packages("E:/vegan.rar") #需要绝对路径,R将反斜杠(\)作为一个转义符。即使在Windows平台上运行R,在路径中也要使用正斜杠。
这种方式不太可取,有时候包依赖其他包,这种方式很容易安装失败。
包安装好之后,需要加载才能使用。现在主要有两种函数可供选择:library()或者require(),比
如:library(ggplot2)
。
有时已经加载的包可能需要卸载。这个可以在RStudio 中的“Packages”界面取消勾选相应的复
选框,或使用detach()函数:detach("package: ggplot2")
。
查看默认加载的R包
getOption("defaultPackages")
查看已加载的R包
(.packages())
查看所有已安装的R包
(.packages(all.available = T))
或
installed.packages()