⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

R 列表 List

R语言 列表类型详解 · 难度:入门 · +10XP

R语言 列表类型详解

列表(List)是R语言中最灵活的数据结构,它可以包含不同类型的元素——数字、字符串、向量、矩阵、数据框甚至嵌套列表都可以放在同一个列表中。列表是R语言中存储复杂数据和函数返回多个结果的基石。

创建列表

# 使用 list() 函数创建
l <- list(
  name = "小明",
  age = 25,
  scores = c(85, 92, 78),
  is_active = TRUE,
  address = list(city = "南宁", district = "青秀区")
)

# 查看列表结构 str(l) # 输出: # List of 5 # $ name : chr "小明" # $ age : num 25 # $ scores : num [1:3] 85 92 78 # $ is_active: logi TRUE # $ address :List of 2 # ..$ city : chr "南宁" # ..$ district: chr "青秀区"

访问列表元素

方式语法返回类型说明
$ 美元符号l$name元素本身最常用,需知道名称
[[]] 双方括号l[["name"]]元素本身可用名称或数字索引
[] 单方括号l["name"]子列表(仍为list)保留列表结构
l <- list(name = "小明", scores = c(85, 92, 78))

l$name # "小明" — 字符串 l[["scores"]] # c(85, 92, 78) — 向量 l["scores"] # list(scores=c(85,92,78)) — 仍是列表 l[[3]] # 按数字索引访问第三个元素 l[[2]][2] # 92 — 先取scores向量,再取第二个值

# 区别总结:$ 和 [[]] 拿元素本身,[] 拿子列表

列表的修改与添加

l <- list(name = "小红", age = 20)

# 修改元素 l$age <- 21 # 修改年龄 l[["name"]] <- "小芳" # 修改名字

# 添加新元素 l$city <- "南宁" # 直接赋值新名称 l[["score"]] <- 95 # 新元素

# 删除元素 l$age <- NULL # 设为NULL即删除

# 合并列表 l2 <- list(gender = "女", hobby = "编程") l3 <- c(l, l2) # c() 合并两个列表

列表的遍历

l <- list(name = "张三", age = 25, city = "南宁")

# 使用 for 循环遍历 for (i in seq_along(l)) { cat(names(l)[i], ":", l[[i]], " ") }

# 使用 lapply 对每个元素应用函数 lapply(l, class) # 返回每个元素的数据类型 # $name: [1] "character" # $age: [1] "numeric" # $city: [1] "character"

# sapply 简化结果(尽量转为向量或矩阵) sapply(l, class) # name age city # "character" "numeric" "character"

实战练习

  1. 创建一个包含姓名、年龄、成绩向量、联系方式的列表
  2. 用 $、[[]] 和 [] 三种方式分别访问列表元素并观察返回类型
  3. 用 sapply 一次性查看列表中所有元素的数据类型
  4. 创建嵌套列表(如学生列表包含多门课程成绩),访问嵌套层的数据

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 71 篇
0 完成
🔥 0