R语言基础操作之入门篇

R是属于GNU系统的一个自由、免费、开源的软件,它是一个用于统计计算和统计制图的优秀工具。R语言最初是由新西兰奥克兰大学统计系的教授Ross Ihaka和Robert Gentleman在S语言基础上开发完成的,是一门解释性语言。在我看来R语言是一门数学性极强的语言,或者说这是一门为数学而生的语言,因为其具有极其出色的计算与统计分析能力,但是在程序流转方面的速度却不如Java、C++等语言。这也是R语言可以用极少的代码量完成许多复杂的数据分析工作的原因,R语言是针对统计分析、图形可视化、报告的完美工具,它在广泛的领域中都有着完美的表现。

一、初识R语言及环境搭建

R语言是主要用于统计分析、绘图的语言和操作环境。R语言我习惯于使用Rstudio,因此后续的介绍部分都是以Rstudio作为R语言编辑器。现在附上R的下载地址以及Rstudio的下载地址,根据所使用的操作系统安装相应版本即可,如链接无法访问直接搜索R及R语言即可。

R的下载:

    R的官网地址为:https://www.r-project.org

RStudio的下载:

    RStudio的官网地址为: https://www.rstudio.com

现在我们来认识一下Rstudio环境

  1. Source Editor:
    Source Editor区域位于RStudio窗体的左上角,这个部分是R脚本的编辑区,在这里可以编写R语言程序代码,也可以保存并运行编写好的R程序代码。

  2. Console:
    Console区域位于RStudio窗体的左下角。这个区域是R语言的主界面,可以在此直接输入指令并获得执行结果。

  3. Workspace:
    Workspace窗口位于RStudio窗体的右上角。该部分的核心标签为Environment标签和History标签。

  4. 功能区:
    位于RStudio窗体的右下角。该部分包含Files标签、Plots标签、Packages标签、Help标签。

二、如何使用R

现在我们编写第一个程序,使用Rstudio编写“Hello word”

  1. 在RStudio中创建新的项目。
  2. 在Console中直接输入命令“print(”Hello Word!“)”。
  3. 把“Hello Word!”字符串赋值给变量fistString,然后将变量打印出来,实现“Hello Word!”
#Hello Word 程序
fistString <- "Hello Word!"
print(fistString)

三、R语言中的基本概念

  1. 变量

      •值可以改变的量是变量,每一个变量都有一个名字,例如例子中的fistString
      •变量名可以包含英文字母、数字、下划线和英文句号(.)
      •变量名不能存在中文(新版本可以使用中文,但不建议)、空格、“-”、“$”等符号
      •不能以数字和下划线开头
      •变量名以”.”号开头但是这个符号后面不能是数字(会变成0.XXXX)
      •不可以和R语言自己的保留字符冲突 
    
  2. 函数

     •函数是指一段在一起的、可以做某一件事儿的程序(语句)。例如数学中的f(x)
     •R语言中函数分为内置函数和自定义函数(本节课只讨论内置函数)•R语言内置函数使用形式•函数名(参数1,参数2,…)
     •函数名指的是函数的名称•参数是一个占位符。 当函数被调用时,你传递一个值(或者一个函数)到参数。 参数是可选的; 也就是说,一个函数可能不包含参数。
     •起到占位符作用的参数我们称之为形参,具体传入函数的参数我们称之为实参
     •函数最终会处理一个运算结果(也就是说每一个函数要完成一个任务,但不一定有返回值)
    
  3. 注释

    '#'R语言中表示注释,这部分不参与编译,需要注意R语言不支持多行注释。
     • 在R语言中  ‘=’  和  ‘<-’  均可以为变量赋值,需要注意的是大部分情况 ‘=’ 可以完成赋值需求,但偶尔会出现问题,建议使用R语言自己的赋值符号 ‘<-’ 编程中尽量在 ‘<-’ 符号前后各空一格。
    

四、关于R包

  1. R包的安装

    R语言中的扩展包我们除了在其官网上可以找到以外,还可以在Bioconductor和GitHub等平台上找到。
     •R包的第一种安装方式使用RStudio自带的图形安装界面Packages窗口中的Install按钮来下载并安装R包。
     •R包的第二种安装方式是在控制台输入install.packages(“R包名")命令来安装R包。
     •如果提示打不开网站需要在packages面板中更换中国CRAN镜像地址
    
  2. R包的加载

      •加载R包只需要在控制台输入library(R包名)命令或require(R包名)命令中任意一条即可。
    
  3. R包的分离

    R包分离只需要在控制台输入remove.packages(R包名)命令即可。
    

五、R语言学习路线图

1.初级入门。《An Introduction to R》,这是官方的入门小册子。其有中文版,由丁国徽翻译,译名为《R导论》。《R4Beginners》,这本小册子有中文版应该叫《R入门》。除此之外,还可以去读刘思喆的《153分钟学会R》。这本书收集了R初学者提问频率最高的153个问题。为什么叫153分钟呢?因为最初作者写了153个问题,阅读一个问题花费1分钟时间,全局下来也就是153分钟了。有了这些基础之后,要去读一些经典书籍比较全面的入门书籍,比如《统计建模与R软件》,国外还有《R Cookbook》和《R in action》。
2.高级入门。读了上述书籍之后,你就可以去高级入门阶段了。这时候要读的书有两本很经典的。《Statistics with R》和《The R book》。之所以说这两本书高级,是因为这两本书已经不再限于R基础了,而是结合了数据分析的各种常见方法来写就的,比较系统的介绍了R在线性回归、方差分析、多元统计、R绘图、时间序列分析、数据挖掘等各方面的内容,看完之后你会发现,哇,原来R能做的事情这么多而且如此简洁。
3.绘图与可视化。亚里斯多德说,“较其他感觉而言,人类更喜欢观看”。因此,绘图和可视化得到很多人的关注和重视。那么,如何学习R画图和数据可视化呢?再简单些,如何画直方图?如何往直方图上添加密度曲线呢?我想读完下面这几本书你就大致会明白了。首先,画图入门可以读《R Graphics》,个人认为这本是比较经典的,全面介绍了R中绘图系统。该书对应的有一个网站,google之就可以了。更深入的可以读《Lattice:Multivariate Data Visualization with R》。上面这些都是比较普通的。当然,有比较文艺和优雅的——ggplot2系统,看《ggplot2:Elegant Graphics for Data Analysis》。
4.计量经济学。关于计量经济学,首先推荐一本很薄的小册子:《Econometrics In R》,做入门用。然后,是《Applied Econometrics with R》,该书对应的R包是AER,可以安装之后配合使用,效果甚佳。计量经济学中很大一部分是关于时间序列分析的,这一块内容在下面的地方说。
5.时间序列分析。时间序列书籍的书籍分两类,一种是比较普适的书籍,典型的代表是:《Time Series Analysis and Its Applications :with R examples》。该书介绍了各种时间序列分析的经典方法及实现各种经典方法的R代码,该书有中文版。如果不想买的话,建议去作者主页直接下载,英文版其实读起来很简单。时间序列分析中有一大块儿是关于金融时间序列分析的。这方面比较流行的书有两本《Analysis of financial time series》,这本书的最初是用的S-plus代码,不过新版已经以R代码为主了。这本书适合有时间序列分析基础和金融基础的人来看,因为书中关于时间序列分析的理论以及各种金融知识讲解的不是特别清楚,将极值理论计算VaR的部分就比较难看懂。另外一个比较有意思的是Rmetrics推出的《TimeSeriesFAQ》,这本书是金融时间序列入门的东西,讲的很基础,但是很难懂。对应的中文版有《金融时间序列分析常见问题集》,当然,目前还没有发出来。经济领域的时间序列有一种特殊的情况叫协整,很多人很关注这方面的理论,关心这个的可以看《Analysis of Integrated and Cointegrated Time Series with R》。最后,比较高级的一本书是关于小波分析的,看《Wavelet Methods in Statistics with R》。
6.数据挖掘。与数据挖掘有关或者有帮助的R包和函数的集合。(1)聚类常用的包: fpc,cluster,pvclust,mclust 基于划分的方法: kmeans, pam, pamk, clara 基于层次的方法: hclust, pvclust, agnes, diana 基于模型的方法: mclust 基于密度的方法: dbscan 基于画图的方法: plotcluster, plot.hclust 基于验证的方法: cluster.stats (2)分类常用的包: rpart,party,randomForest,rpartOrdinal,tree,marginTree, maptree,survival 决策树: rpart, ctree 随机森林: cforest, randomForest 回归, Logistic回归, Poisson回归: glm, predict, residuals 生存分析: survfit, survdiff, coxph (3)关联规则与频繁项集常用的包: arules:支持挖掘频繁项集,最大频繁项集,频繁闭项目集和关联规则 DRM:回归和分类数据的重复关联模型 APRIORI算法,广度RST算法:apriori, drm ECLAT算法: 采用等价类,RST深度搜索和集合的交集: eclat (4)序列模式常用的包: arulesSequences SPADE算法: cSPADE (5)时间序列常用的包: timsac 时间序列构建函数: ts 成分分解: decomp, decompose, stl, tsr (6)统计常用的包: Base R, nlme 方差分析: aov, anova 密度分析: density 假设检验: t.test, prop.test, anova, aov 线性混合模型:lme 主成分分析和因子分析:princomp (7)图表 条形图: barplot 饼图: pie 散点图: dotchart 直方图: hist 密度图: densityplot 蜡烛图, 箱形图 boxplot QQ (quantile-quantile) 图: qqnorm, qqplot, qqline Bi-variate plot: coplot 树: rpart Parallel coordinates: parallel, paracoor, parcoord 热图, contour: contour, filled.contour 其他图: stripplot, sunflowerplot, interaction.plot, matplot, fourfoldplot, assocplot, mosaicplot 保存的图表格式: pdf, postscript, win.metafile, jpeg, bmp, png (8)数据操作 缺失值:na.omit 变量标准化:scale 变量转置:t 抽样:sample 堆栈:stack, unstack 其他:aggregate, merge, reshape。还可参看书籍《使用R语言进行数据挖掘与统计学习》(Data Mining and Statistical Learning with R);《R语言数据挖掘导论》(Data Mining with R: Learning with Case Studies)。

六、总结

1.R是免费的。很多商业统计软件价格不菲,投入成千上万美元都是有可能的。可能国内一些人感觉不会很明显,因为很多人是使用单位或学校集体购买的软件,或者使用破解过的统计软件,而不是花自己钱。对于前者,并不是每个人都有机会享受这种福利。而对于破解过的统计软件,其计算结果的准确性很可能会被质疑。
2.R主要擅长统计分析方面工作。R最初是由两位统计学家开发的,其主要优势也在于统计分析方面。它提供了各种各样的数据处理和分析技术,几乎任何数据分析过程都可以在R中完成。与此相比较,SPSS、MINITAB、MATLAB等数据分析软件更加适合于已经处理好的、规范的数据,而对于还未完成处理过程,或者在分析中仍需大量与处理过程的数据而言,它们可能会显得繁琐一些。
3.R具有顶尖的绘图功能。尤其对于复杂数据的可视化问题,R的优势更加明显。一方面,R中各种绘图函数和绘图参数的综合使用,可以得到各式各样的图形结果,无论对于常用的直方图、饼图、条形图等,还是复杂的组合图、地图、热图、动画,以及自己脑子里突然想到的其他图形展现方式,都可以采用R语言实现。另一方面,从数值计算到得到图形结果的过程灵活,一旦程序写好后,如果需要修改数据或者调整图形,只需要修改几个参数或者直接替换原始数据即可,不用重复劳动。这对需要绘制大量同类图形的用户比较适用。例如,某用户需要观察某一因素与其他100个因素的交互关系,可以绘制100个条形图或走势图。配合R的循环和条形图功能,可以很快得到jpg、png、bmp、tiff、gif或postscript等格式的图形结果。
4.R的交互式数据分析功能强大且灵活。一个完整的数据分析过程可以大体包括以下几个步骤:(1)导入数据;(2)数据准备、探索和清洗;(3)拟合一个统计模型;(4)得到结果并进行评估;(5)如果结果的评估不理想,重新完成(3)步骤;(6)得到多个模型的结果,并进行交叉检验;(7)根据模型结果进行预测、分析等;(8)形成报告。R中每个步骤的所有“输出”都可以直接作为下一个步骤的“输入”,可以批量完成以上所有的(8)个步骤。这个优点主要与STATA、SPSS等统计软件相比而言的,STATA和SPSS的统计分析结果是一大串图表或统计量。如果只是一个或少数几个步骤的分析,这种出现一大串结果的批处理更加直观方便。但如果分析中涉及很多连串的模型,而且一些模型需要反复调用前面模型的结果,那么R的灵活性会更加凸显。
5.R可以轻松地从多个数据源导入数据,包括文本文件、数据库、其他统计软件等。这一点很多其他软件还难以做到。如readLines()、read.table()等函数可以导入文本数据,foreign包的read.spss()可以导入SPSS软件的sav格式数据,foreign包的read.dta()可以导入STATA软件的dta格式数据等等。其他有关数据导入导出的函数可以参见R帮助文档《R Data Import/Export》。
6.R的更新速度很快,包含最新的大量统计方法和案例。R社区由全球大量维护者共同维护,再加上R包的扩展性很强,几乎每天都有人为R社区贡献新的方法,提供其他软件中尚不可用的、新颖的统计计算案例。在本材料“R资源”部分会介绍一些常用的R资源获取途径。
7.R也可以很美。目前比较常用的GUI工具包括Rstudio、Rattle、Rattle、Red-R、Deducer、RKWard、JGR、R Commander、Tinn-R等。其中Rstudio可能是最受欢迎的。

参考文献

[R语言基础之R语言入门](https://blog.csdn.net/weixin_46912400/article/details/121547260)
《R in Action》(R语言实战)
《The Art of_R Programming》(R语言编程艺术)
《An Introduction to R》(R导论)
《Statistics with R》

posted @   郝hai  阅读(1631)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示