命名列表
本课属于 Coddy R 学习旅程的“基础知识”单元。第 74 课,共 78 课。
和命名向量一样,你也可以为列表中的元素指定名称。这样能让代码更易读,并且可以通过有意义的标签而不是数字位置来访问元素。
创建列表时,你可以为元素指定名称:
person <- list(name = "Alice", age = 25, active = TRUE)
print(person)输出:
$name
[1] "Alice"
$age
[1] 25
$active
[1] TRUE注意,现在输出显示的是 $name,而不是 [[1]]。要访问命名元素,请使用 $ 运算符:
person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)输出:
[1] 25你也可以使用双层方括号,并将名称写成字符串。当名称存储在变量中时,这种方式很有用:
person <- list(name = "Alice", age = 25)
print(person[["name"]])输出:
[1] "Alice"修改命名元素的方式也一样。使用 $ 修改现有值或添加新值:
person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)输出:
$name
[1] "Alice"
$age
[1] 26
$city
[1] "Paris"挑战
简单你将收到三行输入:
- 书名(例如,
The Great Gatsby) - 作者(例如,
F. Scott Fitzgerald) - 出版年份(例如,
1925)
执行以下操作:
- 创建一个名为
book的具名列表,其中包含三个元素:title、author和year(将 year 转换为数值) - 使用
$运算符打印书名 - 使用双括号和作为字符串的名称打印书的年份
- 使用
$运算符将year更新为晚 1 年 - 添加一个名为
available、值为TRUE的新元素 - 打印更新后的完整列表
例如,如果输入为:
1984
George Orwell
1949输出应为:
[1] "1984"
[1] 1949
$title
[1] "1984"
$author
[1] "George Orwell"
$year
[1] 1950
$available
[1] TRUE说明:
book$title会打印书名book[["year"]]会打印原始年份- 年份从 1949 更新为 1950
- 添加一个值为
TRUE的新元素available
亲手试试
# 读取输入
con <- file("stdin", "r")
title <- suppressWarnings(readLines(con, n = 1))
author <- suppressWarnings(readLines(con, n = 1))
year <- suppressWarnings(readLines(con, n = 1))
close(con)
# TODO: 在下方编写你的代码
# 1. 创建一个名为 'book' 的命名列表,包含 title、author 和 year 元素(将 year 转换为数值)
# 2. 使用 $ 运算符打印 'book' 的 title
# 3. 使用双重方括号,并以字符串形式指定名称,打印 'book' 的 year
# 4. 使用 $ 运算符将 year 更新为 1 年后
# 5. 添加一个名为 'available' 的新元素,值为 TRUE
# 6. 打印更新后的完整列表这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: R 在线编译器