如今的数据分析要从广泛的数据源(数据库管理系统、文本文件、统计软件以及电子表格)获取数据、将数据片段融合到一起、对数据做清理和标注、用最新的方法进行分析、以有意义有吸引力的图形化方式展示结果,最后将结果整合成令人感兴趣的报告并向利益相关者和公众发布。R正是一个适合完成以上目标的理想而又功能全面的软件。
> age <- c(1, 3, 5, 2, 11, 9, 3, 9, 12, 3)
> weight <- c(4.4, 5.3, 7.2, 5.2, 8.5, 7.3, 6, 10.4, 10.2, 6.1)
> mean(weight) #求均值
[1] 7.06
> sd(weight) # 求标准差
[1] 2.077498
> cor(age, weight) #求相关度
[1] 0.9075655
> plot(age, weight)
R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上助力你的编程工作。我经常会使用?来查看某些函数的功能(如选项或返回值)。
getwd() 显示当前的工作目录
setwd(“mydirectory”) 修改当前的工作目录为mydirectory
ls() 列出当前工作空间中的对象
rm(objectlist) 移除(删除)一个或多个对象
help(options) 显示可用选项的说明
options() 显示或设置当前选项
history(#) 显示最近使用过的#个命令(默认值为25)
savehistory(“myfile”) 保存命令历史到文件myfile中(默认值为.Rhistory)
loadhistory(“myfile”) 载入一个命令历史文件(默认值为.Rhistory)
save.image(“myfile”) 保存工作空间到文件myfile中(默认值为.RData)
save(objectlist, file=“myfile”) 保存指定对象到一个文件中
load(“myfile”) 读取一个工作空间到当前会话中(默认值为.RData)
q() 退出R。将会询问你是否保存工作空间
> getwd() #查看当前工作空间
[1] "D:/R"
> setwd("D:/study")
Error in setwd("D:/study") : 无法改变工作目录
# 以上报错表示没有当前目录,故无法改变工作空间,因此我们需要新建工作目录
> dir.create("D:\\study") #此时工作目录下没有任何数据文件
> setwd("D:\\study") #将工作目录重新指向该新目录
> library(readxl) #引入readxl包,可以导入excel数据
> T01 <- read_excel("E:\\学习\\text.xls",sheet=3,col_names=TRUE) ; #读取对应目录下的Excel数据,第3个sheet,包含表头
> T01
# A tibble: 11 x 9
代码 名称 `1-1` `1-2` `1-3` `1-4` `5` `6` `7`
<chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 01 计算机 是 是 是 是 否 是 否
2 02 信息技术 是 是 否 否 是 是 是
3 03 数学 否 否 是 是 是 是 是
4 04 英语 是 否 是 是 是 是 是
5 05 汉语言文学 是 否 是 是 是 是 是
6 06 小学教育 是 是 是 否 是 是 是
7 07 美术学 是 是 是 是 是 是 是
8 08 特殊教育 是 是 是 是 是 是 是
9 09 环境资源 是 是 否 是 是 是 是
10 10 法学 否 是 否 否 否 否 否
11 11 体育学 否 是 是 是 是 否 否
> q()
Save workspace image to D:/study/.RData? [y/n]: y
独立的工作空间保存项目是为了后面方便管理,启动R会话使用setwd()指定新的工作目录,这样我们就会从上次结束的会话后重新开启一个新的工作空间,以保证各个项目之间的数据设置互不干扰。
> source("D:\\study\\test1.R")
> setwd("D:\\study")
> sink("t2.txt", append = TRUE, split = TRUE) # 此时会在当前的工作空间生成一个t1.txt文档,对应会话窗口产生的结果将追加到该文件当中,因为已经有split 参数,故不再需要sink()。
> > age[1]
[1] 1
> sum(age)
[1] 58
由上可知,当我们在命令窗口执行age[1]即取age中的第一个元素以及sum(age) 求和输出两个结果,这两个结果在对应窗口输出,同时也追加到我们的t1.txt文本中。如不需要再追加到对应文本,执行sink()函数即可。
pdf(“filename.pdf”) PDF文件
win.metafile(“filename.wmf”) Windows图元文件
png(“filename.png”) PBG文件
jpeg(“filename.jpg”) JPEG文件
bmp(“filename.bmp”) BMP文件
postscript(“filename.ps”) PostScript文件
> pdf("t1.pdf")
> plot(age)
> dev.off()# 若此时不执行该函数,pdf中是没有任何图形的,打开对应pdf文档报错。
null device
1
>
也可以通过.libPaths()来查看库所在的位置:
> .libPaths()
[1] "C:/soft/R/R-4.0.3/library"
> library() #显示库中包含哪些包
> search() #显示哪些包已加载并可使用
[1] ".GlobalEnv" "tools:rstudio"
[3] "package:stats" "package:graphics"
[5] "package:grDevices" "package:utils"
[7] "package:datasets" "package:methods"
[9] "Autoloads" "package:base"
> install.packages("plot3D") #安装包
WARNING: Rtools is required to build R packages but is not currently installed. Please download and install the appropriate version of Rtools before proceeding:
https://cran.rstudio.com/bin/windows/Rtools/
also installing the dependency ‘misc3d’
试开URL’https://mirrors.sjtug.sjtu.edu.cn/cran/bin/windows/contrib/4.0/misc3d_0.9-0.zip'
Content type 'application/zip' length 239758 bytes (234 KB)
downloaded 234 KB
试开URL’https://mirrors.sjtug.sjtu.edu.cn/cran/bin/windows/contrib/4.0/plot3D_1.3.zip'
Content type 'application/zip' length 2947347 bytes (2.8 MB)
downloaded 2.8 MB
package ‘misc3d’ successfully unpacked and MD5 sums checked
package ‘plot3D’ successfully unpacked and MD5 sums checked
#显示以上信息表上该包已经安装成功
The downloaded binary packages are in
C:\Users\10493\AppData\Local\Temp\RtmpIli1jL\downloaded_packages
> library(plot3D) #载入该包
> install.packages("flextable") # 安装flextable包
> help(package="flextable") #列出flextable包中可用的函数和数据集
> library(flextable) #载入flextable包
> help("add_footer") #显示add_footer该函数或数据集的描述
> add_footer #显示add_footer的内容
> example("add_footer") #运行add_footer自带的示例
关于R与Rstudio:上述很多命令是在Rstudio中执行的,R是一种语言,而Rstudio是IDE,一个集成开发环境。因此我们必须先装R语言,再安装Rstudio,在Rstudio中配置对应的R环境。在Tools -->global options里面选择你已安装的R语言版本以及其他各种配置等。