You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中读取多工作表Excel后,如何保留指定的8个工作表?

解决方案

用rio包的正确写法

你之前的代码错误使用了factorize()函数,这个函数的作用是将字符向量转换为因子并返回整数编码,只会取第一个元素对应的索引,所以只保留了"Tab1"。正确的做法是直接用工作表名称向量对列表进行索引:

# 先定义需要保留的工作表名称
keep_sheets <- c("Tab1", "Tab2", "Tab3", "Tab4", "Tab5", "Tab6", "Tab7", "Tab8")
# 从已读取的列表中提取指定工作表
Data1 <- Data[keep_sheets]

另外,你也可以在import_list()一步就只读取需要的工作表,避免先读全部50个再筛选,效率更高:

Data1 <- import_list("/Users/Data.xlsx", sheet = keep_sheets)

其他可用包推荐

1. readxl(tidyverse生态,轻量易用)

可以针对性读取指定工作表,无需先加载全部内容:

library(readxl)
library(purrr)

keep_sheets <- c("Tab1", "Tab2", "Tab3", "Tab4", "Tab5", "Tab6", "Tab7", "Tab8")
# 批量读取指定工作表
Data1 <- map(keep_sheets, ~read_excel("/Users/Data.xlsx", sheet = .x))
# 给列表元素命名(对应工作表名)
names(Data1) <- keep_sheets

2. openxlsx(功能全面,支持读写操作)

支持直接批量读取指定工作表,处理大文件效率较好:

library(openxlsx)

keep_sheets <- c("Tab1", "Tab2", "Tab3", "Tab4", "Tab5", "Tab6", "Tab7", "Tab8")
# 批量读取指定工作表
Data1 <- lapply(keep_sheets, function(sheet) {
  read.xlsx("/Users/Data.xlsx", sheet = sheet)
})
names(Data1) <- keep_sheets

内容的提问来源于stack exchange,提问作者Chinmay123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:42:42