学习R编程
R是一种编程语言,主要用于 机器学习、数据分析和统计计算。 它是一种解释性语言,与平台无关,这意味着它可以在Windows、Linux和MacOS等平台上使用。
在这个R语言教程中,我们将从头到尾地学习R编程语言,这个教程既适合初学者,也适合有经验的开发者)。
为什么要学习R编程语言
- R编程被用作机器学习、统计和数据分析的主要工具。
- R是一种开源语言,这意味着它是免费的,任何组织的人都可以安装它而不需要购买许可证。
- 它可以在windows、Linux和macOS等广泛使用的平台上使用。
- R编程语言不仅是一个统计包,而且还允许我们与其他语言(C,C++)集成。因此,你可以轻松地与许多数据源和统计包互动。
- 它的用户群与日俱增,并拥有庞大的社区支持。
- R编程语言是目前数据科学就业市场上最需要的编程语言之一,这使它成为当今最热门的趋势。
主要特点和应用
使得R成为数据科学市场上最需要的工作之一的一些关键特点是。
- 基本统计: 最常见的基本统计术语是平均值、模式和中位数。这些都被称为 “中心趋势的测量”。所以使用R语言,我们可以非常容易地测量中心趋势。
- 静态图形: R语言具有丰富的设施,可用于创建和开发各种静态图形,包括图形地图、马赛克图、双曲线图等,不胜枚举。
- 概率分布: 使用R可以很容易地处理各种类型的概率分布,如二项分布、正态分布、奇偶分布等等。
- R包: R的主要特点之一是它有大量的库可供选择。R有CRAN(Comprehensive R Archive Network),它是一个拥有超过10,000个包的资料库。
- 分布式计算: 分布式计算是一种模式,其中软件系统的组件在多台计算机之间共享以提高效率和性能。2015年11月发布了两个用于R的分布式编程的新包ddR和multidplyr。
R的应用
下载和安装
在本文中,我们将处理RStudio在R中的安装问题,有许多IDE可用于使用R。
请参考下面的文章,以获得关于RStudio及其安装的详细信息。
- 如何在Windows和Linux上安装R Studio?
- R Studio简介
- 在R Studio中创建和执行R文件
R语言 HelloWorld
R程序可以通过几种方式运行。你可以选择以下任何一种方式来继续学习本教程。
- 使用IDE,如RStudio、Eclipse、Jupyter、Notebook等。
- 使用R命令提示符
- 使用RS脚本
现在输入下面的代码,在你的控制台打印hello world。
输出
注: 更多信息请参考《R编程中的Hello World》。
R的基础知识
变量。
R是一种动态类型的语言,也就是说,变量在声明时没有数据类型,而是采用分配给它们的R对象的数据类型。在R语言中,可以用三种方式表示赋值。
- 使用等价运算符– 数据从右向左复制。
- 使用向左运算器– 数据从右向左复制。
- 使用向右运算器– 数据从左到右复制。
例子
输出
注: 更多信息请参考R – 变量 。
注释
注释是英文句子,用于在源代码中添加有用的信息,使读者更容易理解。它解释了代码中使用的逻辑部分,在执行过程中不会对代码产生影响。任何以 “#”开头的语句在R中都是注释。
例子
输出
注: 更多信息请参考R中的注释。
操作符
操作符是指导操作数之间可以进行的各种操作的符号。操作符模拟了对一组复数、整数和数值作为输入操作数进行的各种数学、逻辑和决策操作。这些都是根据它们的功能来分类的
- 算术运算符: 算术运算符模拟各种数学运算,如加法、减法、乘法、除法和模数。
例子
输出
- 逻辑运算符: 逻辑运算符模拟元素明智的决策运算,基于操作数之间的指定运算符,然后被评估为真或假的布尔值。
例子
输出
- 关系运算符: 关系运算符在操作数的相应元素之间进行比较操作。
例子
输出
- 赋值运算符: 赋值运算符用于为R中的各种数据对象赋值。
例子
输出
注: 更多信息,请参考R-操作者
关键词
关键词是R中特定的保留词,每一个都有一个与之相关的特定功能。下面是R语言中的关键词列表。
if | function | FALSE | NA_integer |
---|---|---|---|
else | in | NULL | NA_real |
while | next | Inf | NA_complex_ |
repeat | break | NaN | NA_character_ |
for | TRUE | NA | … |
数据类型
R中的每个变量都有一个相关的数据类型。每种数据类型需要不同数量的内存,并有一些可以对其进行的特定操作。R支持5种数据类型。它们是 –
数据类型 | 数据类型 | 说明 |
---|---|---|
数值型 | 1, 2, 12, 36 | 十进制值在R中被称为数值,它是R中数字的默认数据类型。 |
整数 | 1L, 2L, 34L | R支持整数数据类型,它是所有整数的集合。大写的’L’符号作为后缀,用于表示一个特定的值是整数数据类型。 |
逻辑型 | TRUE, FALSE | 取值为真或假 |
复数 | 2+3i, 5+7i | 所有复数的集合。复数数据类型是用来存储具有虚数成分的数字。 |
字符 | ‘a’, ’12’, “GFG”, “‘hello”‘ | R支持字符数据类型,在这里你有所有的字母和特殊字符。 |
例子
输出
输入/输出的基础知识
从用户那里获取输入
R语言为我们提供了两个内置的函数来读取键盘上的输入。
- readline()方法: 它接受字符串格式的输入。如果输入的是一个整数,那么它将被输入为一个字符串。
例子
- scan()方法: 该方法以向量或列表的形式读取数据。当需要为任何数学计算或任何数据集快速获取输入时,这个方法是一个非常方便的方法。
例子
打印输出到控制台
R提供了各种函数将输出写到屏幕上,让我们来看看它们 —
- print(): 这是最常见的打印输出的方法。
例子
输出
- cat(): cat()将其参数转换为字符串。这对打印用户定义函数的输出很有用。
例子
输出
决策制定
决策是根据某些条件决定程序的执行流程。在决策中,程序员需要提供一些由程序评估的条件,同时还提供一些如果条件为真则执行的语句,如果条件被评估为假则可选择其他语句。
R语言中的决策语句
- if 语句
- if-else 语句
- if-else-if 梯子
- 嵌套的if-else语句
- 开关语句
例1: 演示if和if-else
输出
例2: 演示if-else-if和嵌套if
输出
例子3: 演示开关
输出
控制流
循环用于我们必须重复执行一个语句块的地方。例如,打印 “hello world “10次。R语言中不同类型的循环有
- For 循环
例子
输出
- While 循环
例子
输出
- repeat循环
例子
输出
循环控制语句
循环控制语句改变了其正常的执行顺序。以下是R语言提供的循环控制语句。
- Break语句: break关键字是一个跳转语句,用于在特定的迭代中终止循环。
- Next语句: Next语句用于跳过循环中的当前迭代,进入下一个迭代,而不从循环本身退出。
输出
函数
函数是一个代码块,它给用户提供了重复使用相同代码的能力,从而节省了对内存的过度使用,并为代码提供了更好的可读性。因此,基本上,一个函数是一个语句的集合,执行一些特定的任务并将结果返回给调用者。在R中,通过使用命令 function() 关键字,可以创建函数
例子
输出
带参数的函数
函数的参数可以在定义函数时指定,在函数名之后,括号内。
例子
输出
- 默认参数: 函数中的默认值是指每次调用函数时不需要指定的值。
例如
输出
- 可变长度的参数: 圆点参数(…)也被称为省略号,它允许函数接受未定义的参数数量。
例子
输出
数据结构
数据结构是在计算机中组织数据的一种特殊方式,以便能够有效地使用它。
向量
R语言中的矢量与C语言中的数组相同,用于保存同一类型的多个数据值。一个主要的关键点是,在R语言中,向量的索引将从 “1 “开始,而不是从 “0 “开始。
例子
输出
访问矢量元素
我们可以通过很多方式来访问向量的元素。最常见的是使用'[]’,符号。
例子
输出
列表
列表是一个通用对象,由对象的有序集合组成。列表是异质性的数据结构。
例子
输出
访问列表元素
- 通过名称访问组件: 一个列表中的所有组件都可以被命名,我们可以使用这些名称来使用美元命令访问列表中的组件。
- 通过索引访问组件: 我们也可以使用索引访问列表中的组件。如果我们想访问列表中的顶层组件,我们必须使用双片运算符”[[]]”,也就是两个方括号,如果我们想访问列表中的低层或内层组件,我们必须使用另一个方括号”[]”和双片运算符”[[]”。
例子
输出
添加和修改列表元素
- 列表也可以通过访问组件并将其替换为你想要的组件来进行修改。
- 列表元素可以通过使用新的标签分配新的值来简单地添加。
例子
输出
矩阵
矩阵是数字在行和列中的一种矩形排列。矩阵是二维的、同质的数据结构。
例子
输出
访问矩阵元素 。
矩阵元素可以使用矩阵名称,后面是方括号,中间是逗号。逗号前的值用于访问行,逗号后的值用于访问列。
例子
输出
修改矩阵元素
你可以通过直接赋值来修改矩阵的元素。
例子
输出
DataFrame:
数据框架是R语言的通用数据对象,用于存储表格数据。它们是二维的、异质的数据结构。这些是长度相等的向量列表。
例子
输出
从DataFrame中获取结构和数据
- 人们可以使用str()函数获得数据框的结构。
- 人们可以使用列名从数据框中提取一个特定的列。
例子
输出
数据框架的摘要
通过应用summary()函数,可以获得数据的统计摘要和性质。
例子
输出
数组
数组是R的数据对象,它在两个以上的维度上存储数据。数组是n维的数据结构。
例子
输出
访问数组
可以通过使用由逗号分隔的不同维度的索引来访问数组。不同的组件可以通过元素的名称或位置的任何组合来指定。
例子
输出
向数组添加元素
元素可以被添加到数组中的不同位置。元素的顺序是按照它们被添加到数组中的顺序保留的。在R中,有各种内置的函数可以用来添加新的值。
- c(vector, values)
- append(vector, values)。
- 使用数组的长度函数
例子
输出
从数组中移除元素
- 在R语言中,可以从数组中移除元素,可以一次移除一个,也可以多个一起移除。这些元素被指定为数组的索引,其中满足条件的数组值被保留,其余被移除。
- 另一种移除元素的方法是使用 %in% 操作符,其中属于操作符的TRUE值的元素值的集合被显示为结果,其余的被移除。
例子
输出
因子
因子是用来对数据进行分类并将其存储为等级的数据对象。它们对于存储分类数据非常有用。
例子
输出
访问因子的 元素。
就像我们访问向量的元素一样,我们访问因子的元素的方式也是如此
例子
输出
修改一个因子
一个因素形成后,它的组成部分可以被修改,但需要分配的新值必须是在预定的水平。
例子
输出
错误处理
错误处理是一个过程,在这个过程中我们要处理不需要的或异常的错误,这些错误可能会在程序执行过程中导致异常终止。在R
- stop() 函数将产生错误
- stopifnot() 函数将接受一个逻辑表达式,如果其中任何一个表达式是FALSE,那么它将产生错误,指明哪个表达式是FALSE。
- warning() 将产生警告,但不会停止执行。
错误处理可以用 tryCatch() 来完成 。 这个函数的第一个参数是表达式,后面是指定如何处理条件的条件。
语法
例子
输出
图表和图形
在现实世界中,每天都会产生大量的数据,因此,解释这些数据可能会有些忙乱。在这里, 数据可视化 开始发挥作用,因为通过图表和图形将数据可视化,以获得有意义的见解,而不是筛选庞大的Excel表格,总是更好的。让我们看看R编程中的一些基本图。
条形图
R使用函数barplot()来创建条形图。在这里,垂直和水平条都可以被绘制。
例子
输出
注: 更多信息请参考R中的柱状图
柱状图
R使用hist()函数创建柱状图。
例子
输出
注: 更多信息请参考R语言中的柱状图
散点图
简单的散点图是用plot()函数创建的。
例子
输出
注: 更多信息请参考R语言中的散点图
线形图
R语言中的plot()函数被用来创建折线图。
例子
输出
注: 更多信息请参考R语言中的线图。
饼图
R使用函数pie()来创建饼图。它将正数作为一个向量输入。
例子
输出
膨胀图
通过使用boxplot()函数,可以在R语言中创建膨胀图。
输出
统计学
统计学的意思是数字数据,是数学的一个领域,通常处理数据的收集、制表和数字数据的解释。它是应用数学的一个领域,关注数据的收集、分析、解释和展示。统计学涉及到如何利用数据来解决复杂的问题。
平均数、中位数和模式。
- 平均值: 它是观察值的总和除以观察值的总数。
- 中位数: 它是数据集的中间值。
- 模式: 它是在给定数据集中频率最高的值。R没有一个标准的内置函数来计算模式。
例子
输出
正态分布
正态分布讲述的是数据值是如何分布的。例如,人口的身高、鞋码、智商水平、掷骰子等等。在R语言中,有4个内置函数可以生成正态分布:
- R编程中的 dnorm() 函数测量分布的密度函数。
- pnorm() 函数是累积分布函数,用于测量随机数X取值小于或等于x的概率。
- qnorm() 函数是 pnorm() 函数的逆函数。它接收概率值并给出与概率值相对应的输出。
- R编程中的 rnorm() 函数被用来生成一个正态分布的随机数向量。
例子
输出
R语言 二项分布
二项分布是一种离散分布,只有两种结果,即成功或失败。例如,确定某张彩票是否中奖,某种药物是否能够治愈一个人,它可以用来确定在有限次数的抛掷中的头数或尾数,用于分析模具的结果,等等。我们有四个函数用于处理R中的二项分布,即。
- dbinom()
- pbinom( )
其中n是总的试验次数,p是成功的概率,k是必须找出概率的值。
- qbinom( )
其中P是概率,n是试验的总数,p是成功的概率。
- rbinom( )
其中n是观察数,N是试验的总数,p是成功的概率。
例子
输出
时间序列分析
R中的时间序列是用来查看一个对象在一段时间内的行为方式。在R中,可以通过ts()函数轻松完成。
例子: 让我们以COVID-19大流行的情况为例。将2020年1月22日至2020年4月15日每周的世界COVID-19病例的阳性总数作为数据向量。
输出