命名向量
本课属于 Coddy R 学习旅程的“基础知识”单元。第 62 课,共 78 课。
到目前为止,你一直通过数字位置访问向量元素。如果可以改用有意义的名称来访问它们呢?命名向量允许你为每个元素指定标签,让代码更易读,也更容易理解。
创建向量时提供名称,即可创建命名向量:
ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)输出:
alice bob charlie
25 30 28要按名称访问元素,请在方括号内将名称写成字符串:
print(ages["bob"])输出:
bob
30你也可以使用 names() 函数为现有向量添加名称:
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])输出:
math
85处理具有自然标签的数据时,命名向量特别有用,例如按科目存储学生成绩,或按产品名称存储价格。
挑战
简单你会收到两行输入:
- 以逗号分隔的产品名称列表(例如,
laptop,phone,tablet,headphones) - 以逗号分隔的对应价格列表(例如,
999,699,449,199)
执行以下操作:
- 根据价格创建一个数值向量
- 使用
names()函数将产品名称赋给这个向量 - 打印整个带名称的向量
- 通过产品名称访问第二个产品,并打印它的价格
- 通过产品名称访问最后一个产品,并打印它的价格
例如,如果输入是:
apple,banana,orange,grape
2,1,3,4输出应为:
apple banana orange grape
2 1 3 4
banana
1
grape
4注意:通过名称作为下标(字符串,例如 prices["banana"])访问第二个和最后一个元素,不要使用数字位置。名称来自第一行输入,所以要先在那里查找正确的名称。
亲手试试
# 读取输入
con <- file("stdin", "r")
products_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# 解析以逗号分隔的输入
product_names <- strsplit(products_input, ",")[[1]]
price_values <- strsplit(prices_input, ",")[[1]]
# TODO: 在下方编写你的代码
# 1. 根据价格创建数值向量
# 2. 使用 names() 将商品名称赋给向量
# 3. 打印整个带名称的向量
# 4. 通过名称访问第二个商品,并打印其价格
# 5. 通过名称访问最后一个商品,并打印其价格这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: R 在线编译器