R - 向量:初学者指南

你好,未来的R语言程序员们!今天,我们将踏上一段激动人心的旅程,探索R语言中的向量世界。如果你之前从未编过程,也不用担心——我将作为你的友好向导,我们会一步一步地学习。在本教程结束时,你将能够像专业人士一样创建和操作向量!

R - Vectors

什么是向量?

在我们深入之前,先来了解一下什么是向量。在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