在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
R语言开发环境搭建与实践R语言是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。R语言的特点: 集统计分析与图形显示于一体的统计分析软件。 自由软件,完全免费并且开放源代码。 可编程语言,开放的统计编程环境,语法通俗易懂。所有R的函数和数据集是保存在程序包里面,只有当一个包被载入时,它的内容才可以被访问。 R具有很强的互动性。 R具有强大和自由的画图功能。 R语言安装程序安装后产生两种使用环境,终端命令行开发环境和RGui开发环境。
Rstudio软件是R开发语言的一个IDE,由于比较好用功能强大,所以使用R语言的一般都会装这个,它依赖R软件(必须先装了R之后,然后安装RStudio)。Rstudio比上面提到的终端命令行开发环境和RGui开发环境强大,如具有调试、可视化等功能,界面更友好。
下载R语言安装程序并安装 到R语言官网 下载R语言,,参见下图:
找到下载的R语言安装程序: 打开安装R语言,参见下图:
打开RGui开发环境,参见下图:
下载RStudio安装程序并安装
到RStudio官网 下载RStudio,参见下图:
找到下载的RStudio安装程序 打开安装RStudio,参见下图: 注意R和rstudio这两个安装路径中不能有中文,必须在同一个父目录下。
打开RStudio开发环境,参见下图:
下面介绍简单使用 包括终端命令行的使用、RGui的使用、RStudio的使用
终端命令行的使用 R语言安装程序安装后有两种使用方法,终端命令行的使用和RGui开发环境的使用。 将R语言安装路径设置到path环境变量 我的R语言安装路是D:\Program Files\R\R-4.0.0\bin\x64 以windows10为例 右键此电脑,属性,高级系统设置,系统属性,在“系统变量”中,找到PATH,添加,参见下图:
在CMD中输入R -h可以获取R命令行帮助
在CMD中启动R命令提示符,打开CMD中输入R或r 回车(按下Enter键),其中“>”是R语言命令提示符。tab键提供了补全的功能,在命令提示符下输入开头几个字符后按两下tab键,会给出相应提示。参见下图:
输入print(20 + 11.6) ,显示如下图: 其前面的“[1]”是维度的表示,R语言实际是使用向量来进行数学运算的。
若想退出“>”状态, 输入q()命令 或 直接按下Ctrl+Z组合键,参见下图: 使用上下键可以在提示符后面切换刚才输入的命令,试试就知道是什么意思了。
在R语言环境中获得帮助信息很简单。一个是help函数,一个example函数。 比如需要plot的函数的用法,可以输入如下命令: >help(plot) 如果你需要一些函数使用的例子,可以使用example函数。比如plot函数的例子,可以输入如下命令: >example(plot)
R语言的基本运算量——向量 什么是向量 向量是一组“数”的有序集合。需要把握两点: 1.向量由一组“数”组成,“数”可以是一个也可以是多个; 2.这组“数”是有序的。 举个具体的例子: (0,1,2)就是一个向量,它由0,1,2这三个“数”组成,并且这个三个“数”是有序的,也就是说(0,1,2)和(1,2,0)是两个不同向量。 在R语言中,这个“数”的概念比较广泛,可以数学上实数、复数,也可以是逻辑值,甚至是字符串。 【注意】R语言对复数的表示有一个点需要注意,就是像6+i这种要表示为6+1i,即复数单位前的系数不可省略。这个影响有时还是很大的,比如sqrt(-17)是非法的,因为负数是无法开平方的,但是sqrt(-17+0i)是合法的,有一些数学基础的人应该很容易看出其中的区别。 b1<-c(2+3i,1+2i) b2<-c(10+1i,5+4i) b1+b2
如何创建一个向量 1)基本式 x<-c(0,1,2)
2)连续式 y<-(0:4) 指定起止数,按间隔为1或者-1生成向量。这种方式可以使用c()函数也可忽略。 输入a<-0.1:3
3)连续式,可以指定间隔 a<-seq(1,3,0.5) 这里使用了seq函数
4)连续式,指定起始、间隔和长度 b<-seq(from=2,by=2,length=5) 从2开始,以间隔为2,生成长度为5的向量。
5)嵌套式 d<-3:5 e<-c(1,d,2,d) 这实际上是利用一个已知向量生成新的向量的方法。
6)重复式 f<-2:4 g<-rep(f,3) 重复式使用了rep函数。向量g其实等价于c(f,f,f),但是如果要重复100次,rep(f,100)显然比c(f,f……)方便许多。
h<-rep(f,each=2) 向量h是将向量f中的每个元素重复2次形成的。
7)切片式 i<-2:5 k<-4:80 m<-k[i] 向量k是一个很长的向量,有时我们只需要向量k的一部分。这时我们可以使用向量i对向量k进行切片。切片的方法是使用“[]”。如图,向量m就是我使用向量k的第一个到第四个元素生成的新向量。向量i不需要是1:4这种连续的形式,i<-c(1,10,50)也是正确的。
8)赋值式 q<-c(1,2,3) q[1:2]<-c(5,6) 有时你可能需要改变向量中部分值,此时可以使用这种赋值的形式。
向量的运算 先看一个简单的例子: x1<-c(5,3) x2<-c(2,4) x1-x2 在R语言中,运算都是以向量为基础的。比如我们先前提到的3*5,实际上,在计算时应理解为c(3)*c(5)。其结果15也是一个向量,即c(15)。
R语言向量的运算规则简单来说分三步: 1.将较短的向量补全,使运算符两侧的向量长度相等; 2.补全的规则是短向量重复,使其长度大于等于长向量,再按长向量的长度切片; 3.将两个向量中位置对应的两个元素,按运算符运算。 例子: 3*c(1,2,3) 3应理解为c(3),即图中的计算应理解为c(3)*c(1,2,3)。显然,c(3)的长度是1,而c(1,2,3)的长度是3,c(3)需要将长度补全为3,再进行计算。根据补全的规则,c(3)重复为c(3,3,3)。长度相等后,两者按位相乘,c(3*1,3*2,3*3),即c(3,6,9)。
又如: c(2,3)*c(4,5,6) 看到警告信息了吧,两者长度不是整数倍。这种情况的运算过程中多了一个切片的动作,首先c(2,3)由于长度不够进行补全,为c(2,3,2,3),长度超过了3,就按长度3进行切片,变为c(2,3,2)。然后,c(2,3,2)*c(4,5,6)得到结果c(8,15,12)。
再如 x1<-c(2,4,6) 3*x1
函数运算也可以作用于向量。如: sqrt(c(2,4,8)) sqrt是开方运算,上面的运算相当于c(sqrt(2),sqrt(4),sqrt(8))。
如何知道一个向量是由什么组成的呢?R语言提供了一个函数:mode(),此函数会返回一个字符串表示向量的类型
R语言同样提供了方法将不同类型的向量进行转换。比如想要将向量d1转换为一个由字符串组成的向量c1。
as对象还有许多其他的方法用于类型转换: as.numeric() as.logical() as.charactor() as.factor()
R语言数据类型 数值型 Numeric 如 100, 0, -4.335 双精度型 double 整型 integer 字符型 Character 如 “China” 逻辑型 Logical TRUE, FALSE,NA 复数型 Complex 如3 + 2i
向量(Vectors) 使用c()函数创建向量,前面已经介绍过了。
列表(Lists) 列表是一个R对象,它可以在其中包含许多不同类型的元素,如向量,函数甚至其中的另一个列表。可以使用list()函数创建列表。 list1 <- list(c(2,5,3),21.3)
矩阵(Matrices) 矩阵是二维矩形数据集。可以使用矩阵matrix()函数的向量输入创建。
数组(Arrays) 数组函数使用一个dim属性创建所需的维数。 在下面的例子中,我们创建了一个包含两个元素的数组,每个元素为3x3个矩阵。 n <- array(c('green','yellow'),dim = c(3,3,2))
因子(Factors) 因子是使用向量创建的r对象。 它将向量与向量中元素的不同值一起存储为标签。 标签总是字符,不管它在输入向量中是数字还是字符或布尔等。 它们在统计建模中非常有用。 使用factor()函数创建因子。nlevels函数给出级别计数。 # Create a vector. apple_colors <- c('green','green','yellow','red','red','red','green') # Create a factor object. factor_apple <- factor(apple_colors)
数据帧(Data Frames) 数据帧是表格数据对象。 与数据帧中的矩阵不同,每列可以包含不同的数据模式。 第一列可以是数字,而第二列可以是字符,第三列可以是逻辑的。 它是等长度的向量的列表。 使用data.frame()函数创建数据帧。 BMI <- data.frame( gender = c("Male", "Male","Female"), height = c(152, 171.5, 165), weight = c(81,93, 78), Age = c(42,38,26) )
R语言流程控制语句 在R语言中,流程控制语句主要有if else、for、while、switch、repeat等,这些流程控制语句本身在许多语言中都是相似的如c语言,最重要的是注意其在不同语言中的语法特性。 ThreeMax<-function(a, b, c) { if(a<b){ a = b } if(a>c){ return (a); } else{ return (c); } }
d <- ThreeMax(5,6,3) print(d) //此句可简写为d
对R语言流程控制语句就简单的介绍到此吧。 R语言脚本 通过在脚本文件中编写程序来执行编程,可以重复使用。脚本文件以.R作为扩展名,不过这并不是必需的。在命令提示符下使用R解释器(称为Rscript)来执行这些脚本。在文本文件中编写下面的代码: # My first program in R Programming——注释 myString <- "Hello, World!" print ( myString) 保存文件名为test.R,保存在D:\R_language_script目录中,参见下图: 在CMD命令提示符下输入如下命令回车执行 Rscript D:\R_language_script\test.R 参见下图:
上面方法编写运行R语言脚本不太方便,一般利用RGui或RStudio。
RGui的使用 打开RGUI
建立新脚本:
R语言免费且开源,具有强大和自由的画图功能,R语言原生的绘图系统已经非常强大了,还有一系列的绘图辅助R包,比如著名的ggplot2,更是锦上添花。 【包是R语言发展至今最重要的因素。包其实就是一个一个的函数脚本,安装了一个包以后,你就可以使用这个包里数据或者函数。R语言写起来很快,所以很多科学家再研究出新算法新工具之后,都会第一时间发布一个R版本的工具。所以R语言再科学界的地位很高。 大部分R包的安装方法很简单: install.package("XXX") 其中XXX是包名 使用installed.packages()可以看到各个包安装的路径,版本号等信息。 卸载删除包,使用remove. Packages() 详见https://www.cnblogs.com/brown-birds/p/8031734.html 】 现在简要介绍如何使用R语言利用scatterplot3d包作3D(3维)图形。 基本形式: scatterplot3d(x, y, z, color= ,col.axis=" ", col.grid=" ", main=" ", sub= , xlab= , xlim=, pch= , scale.y= , angle= , type= ) 参数: color:设置点颜色 col.axis:设置坐标轴颜色 col.grid:设置网格颜色 main:设置主标题 sub:副标题 xlab、ylab、zlab/xlim:x、y、z轴标签/界限 pch:设置点的形状 scale.y:y轴相对于x轴、z轴的比例 angle:x、y轴角度 type:"p"点;"l"线;"h"垂线
建立一个脚本文件 library(scatterplot3d) //加载scatterplot3d库 #散点图是描述二元变量关系的图,如果需要一次性对三个变量交互关系进行可视化,可使用三维图 #scatterplot3d(x,y,z),x绘制在横轴上,y绘制在竖轴上,z绘制在透视轴上 z=seq(-10,10,0.01) x=cos(z) y=sin(z) scatterplot3d(x,y,z,highlight.3d = TRUE) 打开RGUI,点击菜单“文件→新建R脚本文件…”输入上面的代码,保存名称为test02.R,保存在D:\R_language_script目录中,参见下图:
运行报错及处理,参见下图:
加载缺失的包后,再次运行成功,参见下图:
对RGui的使用就介绍到这里吧。
RStudio的使用 打开RStudio
建立新脚本
有了上面的基础,对RStudio的使用应该不难,在此就不多说了,你可以探索使用。
进一步学习资源 https://blog.csdn.net/jeffery0207/category_7305915.html https://blog.csdn.net/joshua_hit/category_6713875.html https://blog.csdn.net/lilanfeng1991/category_2421117_2.html https://www.zhihu.com/question/346865819
|
请发表评论