Menu
CoddyTech

命名向量

本课属于 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

处理具有自然标签的数据时,命名向量特别有用,例如按科目存储学生成绩,或按产品名称存储价格。

challenge icon

挑战

简单

你会收到两行输入:

  1. 以逗号分隔的产品名称列表(例如,laptop,phone,tablet,headphones)
  2. 以逗号分隔的对应价格列表(例如,999,699,449,199)

执行以下操作:

  1. 根据价格创建一个数值向量
  2. 使用 names() 函数将产品名称赋给这个向量
  3. 打印整个带名称的向量
  4. 通过产品名称访问第二个产品,并打印它的价格
  5. 通过产品名称访问最后一个产品,并打印它的价格

例如,如果输入是:

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. 通过名称访问最后一个商品,并打印其价格
quiz icon自我测试

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

基础知识中的所有课

自己练习: R 在线编译器