前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >天意R笔记|新手必须掌握的R语言基础

天意R笔记|新手必须掌握的R语言基础

作者头像
用户11203141
发布2025-03-06 11:15:56
发布2025-03-06 11:15:56
7800
代码可运行
举报
运行总次数:0
代码可运行

一、R语言简介

R语言是一款开源的统计计算和图形制作工具,专为数据分析而设计。它不仅具备强大的数据处理能力,还在数组、尤其是向量和矩阵运算方面表现优异。此外,R语言内置了多种统计分析方法,并提供了强大的图形绘制功能。更重要的是,R语言本身是一种灵活的编程语言,允许用户自由进行数据操作、控制输入输出以及编写自定义函数,以应对各种复杂的数据分析任务。

二、选择R的原因

尽管R语言在处理大数据集时存在性能限制,可能不适合直接处理海量数据,但它在教学和实验环境中的作用无可替代。R语言直观的绘图功能和易于理解的算法展示,使其成为教学中极具价值的工具,帮助学生深入理解统计学原理。面对大数据挑战时,可以通过抽样或结合Hadoop、Spark等并行计算框架来解决。此外,掌握R语言的数据分析方法和模型原理,用户可以轻松过渡到其他大数据处理工具,做到无缝衔接。

三、R基本数据对象

(一)向量 向量是R语言中最基础的数据结构,是一个一维的有序元素序列。向量中的元素类型必须相同,可以是整数、实数、字符、逻辑值或复数等。可以使用

代码语言:javascript
代码运行次数:0
复制
c()

函数来创建向量,例如

代码语言:javascript
代码运行次数:0
复制
 vec <- c(1, 2, 3, "a", TRUE)

向量是R中处理和分析数据的基础,很多高级数据结构如矩阵、数组和列表都是基于向量构建的。

(二)矩阵 矩阵是R语言中用于存储同类型数据的二维数组。可以通过

代码语言:javascript
代码运行次数:0
复制
matrix(data, nrow, ncol, byrow=FALSE, dimnames=NULL)

函数创建矩阵,其中data是构成矩阵的向量,nrowncol分别定义矩阵的行数和列数,byrow参数决定数据是按行还是按列填充,dimnames参数则用于为矩阵添加行名和列名。矩阵支持多种数学运算,用户可以通过索引访问和修改矩阵中的元素。

(三)数组 数组是R语言中一种多维的数据结构,用于存储同一类型的数据。使用

代码语言:javascript
代码运行次数:0
复制
array()

函数可以创建数组,该函数接受一个向量作为数据,并通过dim参数指定数组的维度大小。例如,可以创建一个包含多个矩阵的三维数组,数组中的所有元素类型必须相同。数组是对向量和矩阵的扩展,适用于处理更复杂的数据。

(四)因子 因子是一种专门用于表示分类或有序类别数据的R数据类型。因子将分类数据编码为整数,并保存这些整数与原始类别标签之间的映射关系。在统计分析和可视化过程中,因子是非常重要的工具,确保分类变量在模型构建、假设检验(如卡方检验)以及各种回归分析和方差分析中得到正确处理。可以使用

代码语言:javascript
代码运行次数:0
复制
factor()

函数创建因子,并且可以自定义类别的顺序和标签。

(五)列表 列表是R语言中一种灵活且强大的数据结构,允许存储不同类型的数据对象,如数值、字符、逻辑值,甚至是向量、矩阵、数组或数据框等。使用

代码语言:javascript
代码运行次数:0
复制
list()

函数可以创建列表,列表中的每个元素都可以独立访问和修改。例如,可以创建一个包含字符串、数值向量和逻辑矩阵的列表,这种结构有助于管理和操作多组不同性质的数据。

(六)数据框 数据框(data frame)是R语言中特别常用的数据结构,用于存储表格形式的数据。数据框中的每一列代表一个变量,可以是不同的数据类型(如数值、字符或逻辑值),每一行表示一个观测值。数据框可以通过

代码语言:javascript
代码运行次数:0
复制
data.frame()

函数创建,各列的长度必须相同。数据框类似于电子表格,是进行统计分析和数据可视化的基础工具,能够灵活处理包含不同类型变量的数据集。

(七)函数 函数是R语言中用于执行特定任务的代码块。用户可以通过定义函数名、参数列表和函数体来创建函数,函数可以接受输入参数并返回处理结果。例如,

代码语言:javascript
代码运行次数:0
复制
mean()

函数是R中的一个内置函数,用于计算向量或数组的平均值;用户还可以定义自己的函数,如

代码语言:javascript
代码运行次数:0
复制
myFunction(x, y) <- {x + y}

用于实现两数相加。函数有助于提高代码的复用性和可维护性,使编程过程更加模块化和有组织。

四、基本函数应用示例

1.创建向量:使用c()函数可以在R中创建一维向量。例如,

代码语言:javascript
代码运行次数:0
复制
x <- c(10.4, 5.6, 3.1, 6.4, 21.7)

将一系列数值组合成名为x的浮点数向量。赋值符号可以用

<-或= 在这个例子中,所有元素自动转换为数值类型。

2.生成序列:可以使用

代码语言:javascript
代码运行次数:0
复制
seq()

函数生成一系列连续数值。例如,

代码语言:javascript
代码运行次数:0
复制
seq(2, 10)

默认生成从2到10的整数序列,步长为1;若指定步长为2,则使用

代码语言:javascript
代码运行次数:0
复制
seq(1, 10, by = 2)

生成步长为0.2的序列可以使用

代码语言:javascript
代码运行次数:0
复制
seq(1, 5, by = 0.2)

指定从2开始,步长为3并生成4个数:

代码语言:javascript
代码运行次数:0
复制
seq(2, 8, by = 3)

在区间[-5,5]生成100个数:

代码语言:javascript
代码运行次数:0
复制
seq(-5, 5, length.out = 100)

3.重复序列

代码语言:javascript
代码运行次数:0
复制
rep()

函数用于复制向量或生成重复序列。例如,

代码语言:javascript
代码运行次数:0
复制
rep(c(1, 2, 3), times = 3)

会将整个向量重复3次;而

代码语言:javascript
代码运行次数:0
复制
rep(x, each = 2)

会将向量x中的每个元素分别复制2次,形成新的序列并赋值给data

4.拼接字符串

代码语言:javascript
代码运行次数:0
复制
paste()函数

可以将多个数据项拼接为一个字符串。例如,

代码语言:javascript
代码运行次数:0
复制
paste("Hello", "World")

结果为"Hello World";若要添加分隔符,可以使用

代码语言:javascript
代码运行次数:0
复制
paste(c("A", "B", "C"), collapse = ", ")

结果为"A, B, C";结合序列使用

代码语言:javascript
代码运行次数:0
复制
paste(seq(1, 3), "apple")

生成"1 apple", "2 apple", "3 apple"。

5.数据子集选择与修改:通过索引操作符

代码语言:javascript
代码运行次数:0
复制
[]

可以选取向量中的元素。例如,

代码语言:javascript
代码运行次数:0
复制
data[3:5]

获取向量data的第3至第5个元素;使用条件选择,

代码语言:javascript
代码运行次数:0
复制
data[data > 300 & data < 400]

可以选出data中300至400之间的元素,并统计其数量:

代码语言:javascript
代码运行次数:0
复制
sum(data > 300 & data < 400)

6.汇总函数

代码语言:javascript
代码运行次数:0
复制
summary()

函数提供对象的基本统计信息。对于向量,输出包括最小值、四分位数、中位数、均值和最大值等。例如,使用

代码语言:javascript
代码运行次数:0
复制
summary(data)

可以查看向量data的相关统计指标。

7.因子函数

代码语言:javascript
代码运行次数:0
复制
factor()

函数用于将字符向量转换为有序或无序因子,便于进行分类分析。例如,

代码语言:javascript
代码运行次数:0
复制
data <- factor(c("北京","上海","杭州","湖南","贵州","湖南","贵州"))

,使用levels(data)可以显示因子的类别。

8.矩阵函数

代码语言:javascript
代码运行次数:0
复制
matrix()

函数用于创建矩阵。例如,

代码语言:javascript
代码运行次数:0
复制
matrix(c(4,-1,2,1,1,1,0,3,0,3,1,4), nrow = 4, ncol = 3)

可以创建一个4行3列的矩阵。可以通过索引访问矩阵元素,如A[2, 3];创建单位矩阵可以使用diag(n);特定元素的矩阵填充示例已经给出。

9.矩阵转置函数

代码语言:javascript
代码运行次数:0
复制
t()函数

可以对矩阵进行转置,如t(A)将矩阵A转置。

10.矩阵维数函数

代码语言:javascript
代码运行次数:0
复制
dim()函数

用于返回或设置矩阵的维数。例如,dim(A)可以查询矩阵A的维度,使用

代码语言:javascript
代码运行次数:0
复制
dim(A) <- c(3, 4)

可以更改A的维度为3行4列。

11.数组函数:可以通过

代码语言:javascript
代码运行次数:0
复制
array()函数

dim参数定义多维数组,例如创建三维数组时需指定每个维度的大小。

12.列合并与行合并:使用

代码语言:javascript
代码运行次数:0
复制
cbind()函数

按列合并矩阵,例如

代码语言:javascript
代码运行次数:0
复制
cbind(A, B)

;使用rbind()函数按行合并矩阵,例如rbind(A, B)

总之,R语言是开源统计计算和图形制作的核心工具,凭借其强大的数据处理能力、灵活的数组运算和丰富的统计模型及可视化功能,在数据分析领域占据重要地位。尽管处理超大数据时有性能挑战,通过抽样或结合分布式计算,R语言仍能胜任复杂分析任务。其基础数据对象和高级数据结构如向量、矩阵、数组、因子、列表和数据框,提供了灵活的数据组织方式。掌握R语言的核心功能,有助于深入理解数据、提升分析能力,并在实际应用中取得关键成果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信俱乐部 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、R语言简介
  • 二、选择R的原因
  • 三、R基本数据对象
  • 四、基本函数应用示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档