R语言开发环境搭建与实践

R语言是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。R语言的特点:

集统计分析与图形显示于一体的统计分析软件。

自由软件,完全免费并且开放源代码。

可编程语言,开放的统计编程环境,语法通俗易懂。所有R的函数和数据集是保存在程序包里面,只有当一个包被载入时,它的内容才可以被访问。

R具有很强的互动性。

R具有强大和自由的画图功能。

R语言安装程序安装后产生两种使用环境,终端命令行开发环境和RGui开发环境。

Rstudio软件是R开发语言的一个IDE,由于比较好用功能强大,所以使用R语言的一般都会装这个,它依赖R软件(必须先装了R之后,然后安装RStudio)。Rstudio比上面提到的终端命令行开发环境和RGui开发环境强大,如具有调试、可视化等功能,界面更友好。

下载R语言安装程序并安装

到R语言官网

https://www.r-project.org/

下载R语言,,参见下图:

找到下载的R语言安装程序:

打开安装R语言,参见下图:

打开RGui开发环境,参见下图:

下载RStudio安装程序并安装

到RStudio官网

https://rstudio.com/

下载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

R语言开发环境搭建与实践相关推荐

  1. R 语言开发环境搭建

    R 语言在统计计算和画图方面有着显著的优势,因此在大数据领域也有其一席之地. 本文将演示怎样搭建R 语言开发环境. 搭建R 语言开发环境,主要有两个步骤: - 安装 R 到操作系统 - 安装支持 R ...

  2. 1 Go语言开发环境搭建详细教程+go常见bug合集【Go语言教程】

    Go语言开发环境搭建[Win.Linux.Mac] 1 SDK下载 官网地址:golang.org,因为一些原因国内可能无法访问.可以使用下面第二个链接. 国内地址访问:https://golang. ...

  3. 【链块技术10期】区块链基础语言(二)——GO语言开发环境搭建

    ‍原文链接:区块链基础语言(二)--Go语言开发环境搭建 一.操作系统位数的查询方法‍ 在安装前首先要了解个人的电脑系统位数是32位还是64位. 1.1Windows系统查询方法 右击"计算 ...

  4. 【学习OpenCV4】案例3:OpenCV Python语言开发环境搭建

    本书分享内容来自图书学习OpenCV 4:基于Python的算法实战>,该书刚刚上市,是国内第一本系统讲解OpenCV4各个模块的图书,配套案例深入浅出的讲解.第一章有在各个平台搭建环境的介绍, ...

  5. 轻松玩转树莓派Pico之三、Windows+Ubuntu虚拟机模式下VSCode C语言开发环境搭建

    目录 1.VSCode下载与安装 2.VSCode基础插件安装 3.SSH连接与配置 4.SSH免密登录 5.Pico编译 工欲善其事,必先利其器.之前的介绍的Pico流程都是通过命令行编译,没有进行 ...

  6. win10 C语言开发环境搭建

    win10 C语言开发环境搭建 一.编辑器的选择 二.windows10下的开发环境 方法一: 1.下载msys64 2.更新安装包,下载mingw64 gcc编译器 3.打开clion编辑器,配置m ...

  7. 第1章 Window下VSCode的C语言开发环境搭建 (一)

    文章目录 文档视频讲解链接地址 第01章 开发环境搭建 1.1 C语言开发环境搭建 1. 常用的C语言开发环境介绍 VC++ 6.0 VS 2019 Clion DevC++ vim编辑 VSCode ...

  8. 大数据DTSpark蘑菇云行动之 第一课:Scala语言开发环境搭建

    大数据DTSpark"蘑菇云"行动之 第一课:Scala语言开发环境搭建 第一次听王家林老师的课,感觉很不错,特别是家林老师对技术的那种热情深深的感染了我.希望在以后的日子学有所成 ...

  9. 【学习OpenCV4】案例1:Windows OpenCV C++语言开发环境搭建

    本文的案例内容源自于图书**<学习OpenCV 4:基于Python的算法实战>**,该书是国内第一本完整介绍OpenCV4的图书,第一章有在各个平台搭建环境的介绍,后面每个章节都有对模块 ...

最新文章

  1. Caffe学习系列(7):solver及其配置
  2. HDU3338 Kakuro Extension(最大流+思维构图)
  3. find 按文件修改时间查找文件
  4. LDAP命令介绍---ldappasswordmodify口令修改操作
  5. Spark学习-SparkSQL--01-SparkSQL CLI
  6. 程序员这个职业会是另一个即将破灭的泡沫吗?
  7. linux下imp导入oracle数据库,Oracle数据库Linux下的导入IMP
  8. 【瑕疵检测】基于matlab GUI OTSU织物疵点检测【含Matlab源码 860期】
  9. django1.2中将ManyToManyField呈现为checkbox
  10. 【Unity3D日常开发】应粉丝邀约,写一篇单例模式在Unity的实际应用,记得一键三连哦
  11. 由12306.cn谈谈网站性能技术
  12. Win10下如何找到下载的主题壁纸,并提取图片
  13. 详解Android刘海屏适配
  14. 搜集整理的一些博客导航
  15. java定时任务中使用多线程_定时任务使用多线程注意事项
  16. STM32F1 HAL库读写SD卡的操作要点
  17. 学考计算机上sci怎么消,已接收的SCI稿件,想要去掉一个作者,怎么和编..._网络编辑_帮考网...
  18. 解决 ES6 Module 报 Access to script at ‘xx‘ from origin ‘null‘ has been blocked by CORS policy
  19. PMAC硬件-一个运动控制系统的实例
  20. 店铺商场一键报警紧急求助按钮创建和谐社会

热门文章

  1. 安卓开发日记——MyDiary(1)
  2. 战网买台湾服务器物品,「戏里戏外」这东西都能卖钱?暴雪推废服务器礼盒 售价上5000...
  3. 华为云人工智能领域首席科学家田奇:ModelArts 3.0助力行业AI落地
  4. 海外众筹一般都要做哪些内容
  5. 【修改huggingface transformers默认缓存文件夹】
  6. 软件测试实验五脚本扩展,软件测试实验五
  7. 防火墙双击热备技术(理论)
  8. 每天在电脑前的你也要知道保养皮肤的方法
  9. python爬虫网络中断_如何解决Python爬虫中的网络掉线问题?
  10. Word控件Spire.Doc 【Table】教程(10): 如何在 C#、VB.NET 中将嵌入式 Excel 工作表转换为 Word 表格