Menu
CoddyTech

向量运算

本课属于 Coddy R 学习旅程的“基础知识”单元。第 59 课,共 78 课。

R 最强大的功能之一,是能够一次对整个向量执行操作,而不需要遍历每个元素。这样可以让你的代码更简洁、更高效。

对向量使用算术运算符时,R 会对每个元素执行运算:

prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)

输出:

[1]  9.0 22.5 13.5 27.0

你还可以对两个长度相同的向量执行运算。R 会将对应的元素配对:

quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)

输出:

[1] 20 25 60 90

R 提供了实用的内置函数,可用于常见的向量计算,例如 sum()、mean()、min() 和 max():

scores <- c(85, 92, 78, 95, 88)
print(sum(scores))
print(mean(scores))
print(min(scores))
print(max(scores))

输出:

[1] 438
[1] 87.6
[1] 78
[1] 95
challenge icon

挑战

简单

已为你提供以下向量:

hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)

执行以下操作,并打印每个结果:

  1. 将 hours_worked 乘以 hourly_rate,计算每天的收入(逐元素相乘)。打印这个向量。
  2. 给每天的收入增加 10% 的奖金(乘以 1.1)。打印更新后的收入向量。
  3. 使用 sum() 打印本周的总收入。
  4. 使用 mean() 打印日均收入。
  5. 使用 max() 打印单日最高收入。
  6. 使用 min() 打印单日最低收入。

输出应为:

[1] 120 140 162 132 136
[1] 132.0 154.0 178.2 145.2 149.6
[1] 759
[1] 151.8
[1] 178.2
[1] 132

亲手试试

# 给定的向量
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)

# TODO:在下方编写你的代码

# 1. 计算每天的收入(逐元素相乘)

# 2. 给每天的收入加上 10% 的奖金

# 3. 使用 sum() 输出本周总收入

# 4. 使用 mean() 输出平均每日收入

# 5. 使用 max() 输出单日最高收入

# 6. 使用 min() 输出单日最低收入
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: R 在线编译器