一、R语言介绍

  • 前言
  • 1、R语言介绍
    • 1.1 为何要使用R
    • 1.2 R的获取和安装
    • 1.3 R 的使用
      • 1.3.1 初识R
      • 1.3.2 获取帮助
      • 1.3.3 工作空间
      • 1.3.4 输入和输出
    • 1.4 R包(packages)

前言

如今的数据分析要从广泛的数据源(数据库管理系统、文本文件、统计软件以及电子表格)获取数据、将数据片段融合到一起、对数据做清理和标注、用最新的方法进行分析、以有意义有吸引力的图形化方式展示结果,最后将结果整合成令人感兴趣的报告并向利益相关者和公众发布。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

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 MBpackage ‘misc3d’ successfully unpacked and MD5 sums checked
package ‘plot3D’ successfully unpacked and MD5 sums checked
#显示以上信息表上该包已经安装成功
The downloaded binary packages are inC:\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语言版本以及其他各种配置等。

学习之旅10-R语言介绍相关推荐

  1. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

  2. R语言实战-读书笔记(第1 章 R语言介绍)

    *R语言实战所有学习笔记,如涉及侵权,请联系撤稿.* **标题号与书中标题号对应** R语言实战 第1章 R语言介绍     1.2 R的获取与安装         R可以在CRAN(Comprehe ...

  3. R语言从入门到精通Day1之【R语言介绍】

    R语言开篇–R语言介绍 开篇不再介绍R语言是如何下载和R语言的代码,如果您想真正的了解R,学习R,利用R做一些实际性的应用,不妨花点时间先了解一下当前数据科学的进展.了解R语言的历史和发展进程,R语言 ...

  4. 小猪的Python学习之旅 —— 10.三分钟上手Requests库

    小猪的Python学习之旅 -- 10.三分钟上手Requests库 标签:Python 一句话概括本文: 本节讲解Requests库的常见使用,以及一个实战项目: 扒取某一篇微信文章里所有的图片,视 ...

  5. 零基础自学R语言 1 R语言介绍 1.5 RStudio软件

    零基础自学R语言 文章目录 零基础自学R语言 1 R语言介绍 1.5 RStudio软件 1.5.1 介绍 1.5.2 项目 1.5.3 帮助 1.5.4 使用技巧 1.5.4.1 使用历史命令 1. ...

  6. 零基础自学R语言 1 R语言介绍 1.4 基本R软件的用法

    零基础自学R语言 文章目录 零基础自学R语言 1 R语言介绍 1.4 基本R软件的用法 1.4.1 基本运行 1.4.2 项目目录 1 R语言介绍 1.4 基本R软件的用法 1.4.1 基本运行 在M ...

  7. R语言介绍及安装教程

    R语言是一种免费的开源编程语言和环境,主要用于数据分析.统计建模和可视化.它可以运行在不同的操作系统上,如Windows.MacOS和Linux.R语言具有以下特点: 丰富的数据处理和统计分析函数库: ...

  8. 零基础自学R语言 1 R语言介绍 1.2 R的下载与安装

    零基础自学R语言 文章目录 零基础自学R语言 1 R语言介绍 1.2 R的下载与安装 1.2.1 R的下载 1.2.2 R软件安装 1 R语言介绍 1.2 R的下载与安装 1.2.1 R的下载 以微软 ...

  9. 零基础自学R语言 1 R语言介绍 1.3 R扩展软件包的安装与管理

    零基础自学R语言 文章目录 零基础自学R语言 1 R语言介绍 1.3 R扩展软件包的安装与管理 1.3.1 扩展包使用 1.3.2 安装 1.3.3 Github和BioConductor的扩展包 1 ...

  10. 《R语言实战笔记》第一章:R语言介绍

    第一章:R语言介绍 1.3.2获取帮助 1.3.3 工作空间 注意:函数setwd()不会自动创建一个不存在的目录.可以先使用函数dir.create()来创建新目录,然后使用setwd()将工作目录 ...

最新文章

  1. python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题
  2. [WinApi]邮槽通信C/S实例
  3. 清华、北邮等高校研究人员实现具有 160 个目标的基于 SSVEP 的免校准 BCI 系统...
  4. python 贴吧自动回复机-用python itchat写一个微信机器人自动回复
  5. 机器学习:一种新的编程范式
  6. VMware设置及linux静态ip设置
  7. vs2013配置python_VS2013中Python学习笔记[环境搭建]
  8. sysbench的框架实现介绍
  9. php ci_controller,php – CodeIgniter 2:如何多次扩展CI_Controller?
  10. 计算机信息机房,计算机信息中心机房建设标准
  11. 如何使用Alfred mac版的Snippets文字扩展功能
  12. 超六类网线和六类网线的区别—Vecloud
  13. windows系统有那些服务器版本,windows系统有哪些版本
  14. linux如何设置root权限,linux设置root权限的方法
  15. 架构师害怕程序员知道的十项技能的读后感
  16. Myeclipse中java文件注释格式设置
  17. uva10935卡片游戏
  18. 《和平精英》SS3赛季战神灵敏度来了,还有赛季手册最全套装
  19. Java面相对象练习案例其参考代码
  20. 12种高效的管理方法

热门文章

  1. 802.11ac物理层
  2. Python批量导入图片到Word文件
  3. Vue/vant——未登陆时清空购物车以及拦截未登录的状态拒绝进入购物车页面
  4. 【将门创投】这12张图生动地告诉你,深度学习中的卷积网络是怎么一回事?...
  5. FPGA可以转行数字IC验证吗?
  6. Android后台耗电分析及优化
  7. 快速删除大文件利器 node 包 rimraf
  8. python应用内部审计_基于大数据技术提升内部审计质量的路径
  9. android分享视频到微信,android 分享文本、图片、音乐、视频到微信朋友圈、好友、我的收藏...
  10. 自动生成代码的chm格式帮助文档