学习之旅10-R语言介绍

13 篇文章 0 订阅
7 篇文章 0 订阅

前言

如今的数据分析要从广泛的数据源(数据库管理系统、文本文件、统计软件以及电子表格)获取数据、将数据片段融合到一起、对数据做清理和标注、用最新的方法进行分析、以有意义有吸引力的图形化方式展示结果,最后将结果整合成令人感兴趣的报告并向利益相关者和公众发布。R正是一个适合完成以上目标的理想而又功能全面的软件。

在这里插入图片描述

1、R语言介绍

1.1 为何要使用R

  • R是一种为统计计算和绘图而生的语言和环境,它是
    一套开源的数据分析解决方案,由一个庞大且活跃的全球性研究型社区维护。
    优点:开源、免费、提供了各式各样的数据分析技术、支持各种数据类型、绘图功能强大、可适用于多种平台等

1.2 R的获取和安装

  • R可以在CRAN(Comprehensive R Archive Network)http://cran.r-project.org上免费下载。

1.3 R 的使用

  • R是一种区分大小写的解释型语言,可以在命令行中输入一条命令,也可以一次性执行写在脚本文件中的一组命令。R语言也支持多种数据类型,包括向量、矩阵、数据框(与数据集类似)以及列表(各种对象的集合)。R中的多数功能是由程序内置函数和用户自编函数提供的,一次交互式会话期间的所有数据对象都被保存在内存中。一些基本函数是默认直接可用的,而其他高级函数则包含于按需加载的程序包中。
  • 关于赋值:R语言通常用 <- 来进行赋值,很少用 =
  • 注释:单行注释用 # ;多行注释’’‘注释内容’’’。
  • R语言区分大小写:
     使用了错误的大小写。help()、Help()和HELP()是三个不同的函数(只有第一个是正确的)。
     忘记使用必要的引号。install.packages(“gclus”)能够正常执行,然而Install.packages(gclus)将会报错。
     在函数调用时忘记使用括号。例如,要使用help()而非help。即使函数无需参数,仍需加上()。
     在Windows上,路径名中使用了\。R将反斜杠视为一个转义字符。setwd(“c:\mydata”)会报错。正确的写法是setwd(“c:/mydata”)或setwd(“c:\mydata”)。
     使用了一个尚未载入包中的函数。函数order.clusters()包含在包gclus中。如果还没有载入这个包就使用它,将会报错。

1.3.1 初识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)

在这里插入图片描述

1.3.2 获取帮助

R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上助力你的编程工作。我经常会使用?来查看某些函数的功能(如选项或返回值)。

  • help.start() 打开帮助文档首页。
  • ?函数名 来获取对应函数的帮助文档。eg:> ?head
    > ?head

1.3.3 工作空间

  • 即当前R的工作环境,用于存储所有用户定义的对象(向量,矩阵、函数、数据框、列表…)。在一个R会话结束时,你可以将当前工作空间保存到一个镜像中,并在下次启动R时自动载入它。通过键盘的“↑”、“↓”键来查看已经输入的历史命令,通过键盘的“Enter”键来执行当前行的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
  • q() 函数执行时,程序会询问是否保存工作空间,输入:y则输入的所有历史命令都会保存到.Rhistory文件中,工作空间(包含向量x)保存到文件.RData中,退出当前会话。

在这里插入图片描述
在这里插入图片描述
独立的工作空间保存项目是为了后面方便管理,启动R会话使用setwd()指定新的工作目录,这样我们就会从上次结束的会话后重新开启一个新的工作空间,以保证各个项目之间的数据设置互不干扰。

1.3.4 输入和输出

  • R启动后会开始一个交互式会话,我们在该会话窗口进行命令的输入执行,最后输出结果,当然我们也可以将代码块进行封装成脚本文件,最后统一调用。
  • 输入: 函数source(“filename”)可在当前会话中执行一个脚本。
    test1.R脚本文件:
    age <- c(1, 3, 5, 2, 11, 9, 3, 9, 12, 3)
    a1<-age[1];
    sm<-sum(age);
    sm
> source("D:\\study\\test1.R")

在这里插入图片描述

  • 文本输出: 函数sink(“filename”)将输出重定向到文件filename中,已有的文件会默认覆盖,append = TURE 则表示在该文件后面追加,split = TRUE则可以将输出的结果在窗口展示出来并保存到输出文本中。不加参数调用sink()则仅在当前会话窗口显示结果,不会追加到文本文件中。
> 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()函数即可。

  • 图形输出: sink()可以重定向文本输出,但它对图形输出没有影响。通过以下函数可以输出对应格式的图形,最后用dev.off()函数输出返回到终端即可。

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 
> 

在这里插入图片描述
在这里插入图片描述

1.4 R包(packages)

  • 什么是R包: 包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。即很多功能是已经封装好的,我们可以通过下载需要的包来调用对应函数来说实现各种各样的功能,比如:
    RMySQL包:连接Oracle连接ROracle包
    sqldf包: 利用sql的方式操作数据框
    flextable包: 美化表格
  • 包的下载: 一般来说我们都是通过某个镜像站点(CRAN)来下载我们需要的包的(比如上海交大,同济大学等等) ,下载后的包都放在对应R安装目录的library库中,如下图所示:
    在这里插入图片描述

也可以通过.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(“对应包名”),安装好对应的包后如果需要调用该包中的一些函数,则需要提前载入该包:library(包名),前者需要加双引号,后者则不需要。有的包需要不定期更新,通过update.packages(“对应包名”)来更新包。help(package=“对应包名”)可以输出某个包的简短描述以及包中的函数名称和数据集名称的列表。使用函数help()可以查看其中任意函数或数据集的更多细节。
> 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语言版本以及其他各种配置等。
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值