前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言数据结构(一)向量

R语言数据结构(一)向量

原创
作者头像
单细胞指南
发布2023-08-02 18:37:32
1800
发布2023-08-02 18:37:32
举报
文章被收录于专栏:单细胞生信分析

数据结构是指在计算机中存储和组织数据的方式,不同的数据结构有不同的特点和适用场景。R语言中的常用数据结构,包括向量、矩阵、数组、列表和数据框。关于数据结构的使用,我们将分四篇文章分别介绍每种数据结构的操作方法和代码示例。

为方便大家理解记忆,对每种数据结构的基本操作概括为四大类:

  1. 创建数据结构
  2. 往里面添加数据
  3. 从里面查询数据
  4. 对里面的数据进行修改

这篇文章我们将介绍向量的使用

向量

向量是R语言中最基本的数据结构,它是由一系列相同类型的元素组成的一维数组。向量的类型可以是数值、字符、逻辑或因子等,但是每个向量只能包含一种数据类型。向量的长度是指它包含的元素个数,可以用length()函数来获取。

创建向量

创建向量的一种常用方法是使用c()函数,它可以将多个元素组合成一个向量。例如:

代码语言:javascript
复制
# 创建一个数值向量
x <- c(1, 2, 3, 4, 5)
x
## [1] 1 2 3 4 5

# 创建一个字符向量
y <- c("a", "b", "c", "d", "e")
y
# [1] "a" "b" "c" "d" "e"

# 创建一个逻辑向量
z <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
z
# [1]  TRUE FALSE  TRUE FALSE  TRUE

另一种创建向量的方法是使用序列生成函数,如seq()rep()seq()函数可以根据指定的起始值、结束值和步长来生成一个等差数列,rep()函数可以根据指定的重复次数或长度来复制一个元素或向量。例如:

代码语言:javascript
复制
# 使用seq()函数创建一个从1到10,步长为2的数值向量
a <- seq(from = 1, to = 10, by = 2)
a
# [1] 1 3 5 7 9

# 使用rep()函数创建一个重复5次的字符向量
b <- rep("hello", times = 5)
b
# [1] "hello" "hello" "hello" "hello" "hello"

# 使用rep()函数创建一个重复到长度为10的逻辑向量
c <- rep(c(TRUE, FALSE), length.out = 10)
c
# [1]  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE

访问向量

访问向量中的元素可以使用方括号[]和索引号。索引号从1开始,表示第一个元素,负数表示排除对应位置的元素。例如:

代码语言:javascript
复制
# 访问x向量中的第一个元素
x[1]
# [1] 1

# 访问y向量中的最后一个元素
y[length(y)]
# [1] "e"

# 访问z向量中除了第三个元素以外的所有元素
z[-3]
# [1]  TRUE FALSE FALSE  TRUE

也可以使用逻辑表达式或条件语句来访问向量中满足特定条件的元素。例如:

代码语言:javascript
复制
# 访问x向量中大于3的元素
x[x > 3]
# [1] 4 5

# 访问y向量中不等于"d"的元素
y[y != "d"]
# [1] "a" "b" "c" "e"

# 访问z向量中为TRUE的元素
z[z == TRUE]
# [1] TRUE TRUE TRUE

修改向量

修改向量中的元素可以使用赋值符号<-或者等号=。例如:

代码语言:javascript
复制
# 修改x向量中的第二个元素为10
x[2] <- 10x
# [1]  1 10  3  4  5

# 修改y向量中的第四个和第五个元素为"f"和"g"
y[4:5] = c("f", "g")
y
# [1] "a" "b" "c" "f" "g"

# 修改z向量中为FALSE的元素为NA
z[z == FALSE] <- NA
z
# [1]  TRUE    NA  TRUE    NA  TRUE

也可以使用向量运算来修改向量中的元素。例如:

代码语言:javascript
复制
# 对x向量中的每个元素加1
x <- x + 1
x
# [1]  2 11  4  5  6
# 对y向量中的每个元素连接一个感叹号
y <- paste(y, "!")
y
# [1] "a!" "b!" "c!" "f!" "g!"

# 对z向量中的每个元素取反
z <- !z
z
# [1] FALSE    NA FALSE    NA FALSE

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 向量
    • 创建向量
      • 访问向量
        • 修改向量
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档