R - 向量:初学者指南
你好,未来的R语言程序员们!今天,我们将踏上一段激动人心的旅程,探索R语言中的向量世界。如果你之前从未编过程,也不用担心——我将作为你的友好向导,我们会一步一步地学习。在本教程结束时,你将能够像专业人士一样创建和操作向量!
什么是向量?
在我们深入之前,先来了解一下什么是向量。在R语言中,向量就像一个容器,它可以容纳多个相同类型的项。把它想象成一列火车,有几个车厢,每个车厢都装载着同一种货物。这些货物可能是数字、文本,甚至是逻辑值(真/假)。
向量创建
让我们开始学习如何创建向量。在R语言中创建向量的方法有很多,但我们将关注最常见且最有用的方法。
使用c()函数
创建向量的最直接的方式是使用c()
函数。'c'代表'合并'或'连接'。
# 创建一个数值向量
numbers <- c(1, 2, 3, 4, 5)
print(numbers)
# 创建一个字符向量
fruits <- c("apple", "banana", "cherry")
print(fruits)
# 创建一个逻辑向量
is_student <- c(TRUE, FALSE, TRUE, TRUE)
print(is_student)
在这些示例中,我们创建了三种不同类型的向量。<-
符号用于将向量赋值给一个变量名。
使用:操作符
对于创建一个数字序列,`:操作符非常方便:
# 创建一个从1到10的序列
sequence <- 1:10
print(sequence)
# 创建一个反向序列
reverse_sequence <- 10:1
print(reverse_sequence)
这是创建整数序列的快速方法。就像告诉R,“给我从这到那的所有数字。”
使用seq()函数
对于更控制你的序列,seq()
函数是你的好帮手:
# 创建一个具有特定步长的序列
by_twos <- seq(from = 0, to = 10, by = 2)
print(by_twos)
# 创建一个具有特定长度的序列
five_numbers <- seq(from = 0, to = 1, length.out = 5)
print(five_numbers)
seq()
函数更加灵活,允许你指定开始值、结束值、步长或你想要的元素数量。
使用rep()函数
有时,你可能想要重复值。这时rep()
就派上用场了:
# 重复单个值
repeat_five <- rep(5, times = 3)
print(repeat_five)
# 重复一个向量
repeat_vector <- rep(c(1, 2), times = 3)
print(repeat_vector)
# 重复每个元素
repeat_each <- rep(c(1, 2), each = 3)
print(repeat_each)
rep()
对于创建模式或用重复值填充数据非常有用。
访问向量元素
现在我们知道如何创建向量了,让我们学习如何访问它们的元素。在R语言中,我们使用方括号[]
来访问元素。
通过索引访问
记住,在R中,索引是从1开始的,而不是像其他编程语言那样的0。
fruits <- c("apple", "banana", "cherry", "date")
# 访问第一个元素
print(fruits[1]) # 输出:"apple"
# 访问第三个元素
print(fruits[3]) # 输出:"cherry"
# 访问多个元素
print(fruits[c(1, 3)]) # 输出:"apple" "cherry"
# 访问一系列元素
print(fruits[2:4]) # 输出:"banana" "cherry" "date"
负索引
在R中,你可以使用负索引来排除元素:
# 排除第二个元素
print(fruits[-2]) # 输出:"apple" "cherry" "date"
# 排除多个元素
print(fruits[c(-1, -3)]) # 输出:"banana" "date"
逻辑索引
你也可以使用逻辑向量来访问元素:
numbers <- c(1, 2, 3, 4, 5)
# 访问偶数
print(numbers[numbers %% 2 == 0]) # 输出:2 4
# 访问大于3的数字
print(numbers[numbers > 3]) # 输出:4 5
向量操作
现在我们能够创建和访问向量了,让我们学习如何操作它们。
向量算术
你可以对向量执行算术运算:
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)
# 加法
print(vec1 + vec2) # 输出:5 7 9
# 乘法
print(vec1 * vec2) # 输出:4 10 18
# 除法
print(vec2 / vec1) # 输出:4 2.5 2
向量循环
当对长度不同的向量执行操作时,R将会循环较短的向量:
short_vec <- c(1, 2)
long_vec <- c(1, 2, 3, 4, 5, 6)
print(short_vec + long_vec) # 输出:2 4 4 6 6 8
R会重复较短的向量以匹配较长向量的长度。
向量函数
R提供了许多用于操作向量的有用函数:
numbers <- c(5, 2, 8, 1, 9)
# 向量的长度
print(length(numbers)) # 输出:5
# 所有元素的总和
print(sum(numbers)) # 输出:25
# 向量的平均值(平均数)
print(mean(numbers)) # 输出:5
# 对向量排序
print(sort(numbers)) # 输出:1 2 5 8 9
以下是一些常见向量函数的总结表:
函数 | 描述 |
---|---|
length() | 返回向量中元素的数量 |
sum() | 计算所有元素的总和 |
mean() | 计算所有元素的平均值 |
median() | 找到中位数 |
max() | 返回最大值 |
min() | 返回最小值 |
sort() | 将向量按升序排序 |
rev() | 反转元素的顺序 |
结论
恭喜你!你已经迈出了探索R语言向量世界的第一步。我们已经覆盖了创建、访问元素和基本操作。记住,熟能生巧,所以不要犹豫,去实践这些概念吧。
向量是R语言数据操作的基础,掌握它们将为你在R编程旅程中取得成功奠定基础。继续探索,继续编码,最重要的是,享受其中的乐趣!
Credits: Image by storyset