数据结构是指在计算机中存储和组织数据的方式,不同的数据结构有不同的特点和适用场景。R语言中的常用数据结构,包括向量、矩阵、数组、列表和数据框。关于数据结构的使用,我们将分四篇文章分别介绍每种数据结构的操作方法和代码示例。
为方便大家理解记忆,对每种数据结构的基本操作概括为四大类:
- 创建数据结构
- 往里面添加数据
- 从里面查询数据
- 对里面的数据进行修改
这篇文章我们将介绍向量的使用
向量
向量是R语言中最基本的数据结构,它是由一系列相同类型的元素组成的一维数组。向量的类型可以是数值、字符、逻辑或因子等,但是每个向量只能包含一种数据类型。向量的长度是指它包含的元素个数,可以用length()
函数来获取。
创建向量
创建向量的一种常用方法是使用c()
函数,它可以将多个元素组合成一个向量。例如:
# 创建一个数值向量
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()
函数可以根据指定的重复次数或长度来复制一个元素或向量。例如:
# 使用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开始,表示第一个元素,负数表示排除对应位置的元素。例如:
# 访问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
修改向量
修改向量中的元素可以使用赋值符号<-
或者等号=
。例如:
# 修改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