当前位置: 首页 > news >正文

R轻松玩转Excel数据

读取 Excel 文件

在 R 中读取 Excel 文件可以使用readxlopenxlsx包。readxl是 tidyverse 生态系统的一部分,适合快速读取数据;openxlsx功能更全面,支持读写和格式操作。

安装并加载readxl包:

install.packages("readxl") library(readxl)

读取 Excel 文件中的第一个工作表:

data <- read_excel("example.xlsx")

指定工作表名称或索引:

data <- read_excel("example.xlsx", sheet = "Sheet2") data <- read_excel("example.xlsx", sheet = 2)

写入 Excel 文件

使用openxlsx包写入 Excel 文件:

install.packages("openxlsx") library(openxlsx) # 创建数据框 df <- data.frame( Name = c("Alice", "Bob", "Charlie"), Score = c(85, 92, 78) ) # 写入 Excel write.xlsx(df, "output.xlsx")

追加数据到现有 Excel 文件:

write.xlsx(df, "output.xlsx", append = TRUE, sheetName = "NewSheet")

处理多个工作表

读取所有工作表名称:

sheets <- excel_sheets("example.xlsx")

遍历并读取所有工作表:

all_data <- lapply(sheets, function(sheet) { read_excel("example.xlsx", sheet = sheet) }) names(all_data) <- sheets

高级格式操作

使用openxlsx设置单元格样式:

wb <- createWorkbook() addWorksheet(wb, "FormattedSheet") writeData(wb, "FormattedSheet", df) # 设置标题行样式 header_style <- createStyle( textDecoration = "bold", fgFill = "#4F81BD", fontColour = "white" ) addStyle(wb, "FormattedSheet", header_style, rows = 1, cols = 1:ncol(df)) # 保存工作簿 saveWorkbook(wb, "formatted.xlsx", overwrite = TRUE)

处理大型 Excel 文件

对于大型文件,使用readxl的分块读取功能:

# 只读取前 100 行 data <- read_excel("large_file.xlsx", n_max = 100) # 跳过前 10 行 data <- read_excel("large_file.xlsx", skip = 10)

与数据库交互

将 Excel 数据导入数据库:

library(DBI) library(RSQLite) # 创建内存数据库 con <- dbConnect(RSQLite::SQLite(), ":memory:") # 读取 Excel 并写入数据库 excel_data <- read_excel("data.xlsx") dbWriteTable(con, "excel_table", excel_data) # 查询数据 dbGetQuery(con, "SELECT * FROM excel_table WHERE Score > 80")

使用公式和图表

在 Excel 中插入公式:

wb <- createWorkbook() addWorksheet(wb, "FormulaSheet") writeData(wb, "FormulaSheet", df) # 添加求和公式 writeFormula(wb, "FormulaSheet", x = "=SUM(B2:B4)", startCol = 3, startRow = 2) saveWorkbook(wb, "with_formula.xlsx", overwrite = TRUE)

错误处理与验证

检查文件是否存在:

if (file.exists("example.xlsx")) { data <- read_excel("example.xlsx") } else { stop("File not found") }

验证列数据类型:

data <- read_excel("example.xlsx", col_types = c("text", "numeric", "date"))

性能优化

禁用openxlsx的自动格式化以提高速度:

options("openxlsx.disableFormat" = TRUE) wb <- createWorkbook() # ... 操作工作簿 ...

使用data.table处理大数据:

library(data.table) dt <- as.data.table(read_excel("large_data.xlsx")) # 快速聚合操作 summary <- dt[, .(AvgScore = mean(Score)), by = Name]
http://www.jsqmd.com/news/490756/

相关文章:

  • 课程记录:Windows2
  • 高德地图混合部署实战:离线瓦片与在线API的智能切换策略
  • 西安国文驾校二轮摩托车考驾照口碑如何,值得推荐吗 - 工业品牌热点
  • 探讨专业的精密锻造公司,三邑锻造在全国排名第几? - 工业推荐榜
  • 【一篇即毕业系列】C++的引用从基础到通天
  • 仅剩72小时!生态环境部新发布的《污染预测模型R实现规范》(HJ 1308-2024)强制适配倒计时(含兼容性迁移速查表)
  • 2026 本科生论文工具盘点:9 款 AI 工具搞定初稿 / 绘图 / 排版 / AI 率
  • leetcode 1389. Create Target Array in the Given Order 按既定顺序创建目标数组-耗时100
  • 国内免费AI聊天网站大全:稳定直连与高效响应指南
  • 从零开始了解数据采集——制造业数字孪生
  • 2026年北京老人陪护企业怎么选择,北京吉至嘉家政是优选 - myqiye
  • Web原生数据库工具选型指南:SQLynx vs Navicat在云环境下的真实表现
  • 探讨创新能力强的超薄弹簧不锈钢带加工厂,哪家口碑好? - 工业设备
  • 通义千问1.5-1.8B-Chat-GPTQ-Int4应用:AIGC内容创作中的提示词优化
  • 破局与共生:制造业数字化浪潮下的机床网络推广新生态 - 品牌推荐大师
  • [DotNet] Linux 下如何编译,才能得到一个不依赖任何 so 的独立二进制文件?
  • 树莓派5实战:用NCNN跑通YOLOv5目标检测(附完整代码)
  • 集对分析法在供应链风险管理中的5个典型应用场景(含Excel模板)
  • 每周读书与学习-Jmeter中如何使用Bean Shell脚本(三)Bean Shell的基础语法之运算符和控制流语句
  • Swift-All轻量化客户端:一键部署API,快速集成大模型能力
  • 2026年毕业季:别乱用AI了!这是我测评11款工具后的终极避坑指南
  • 2026最新版!AI免费tokens全攻略,零成本玩转OpenClaw
  • MiniCPM-o-4.5-nvidia-FlagOS详细步骤:WSL2环境下CUDA驱动与模型部署兼容方案
  • SecGPT-14B镜像免配置优势:CSDN平台预装模型,省去HuggingFace下载与量化步骤
  • 2026年重庆新房装修服务推荐,港宏装饰打造品质家居 - 工业品牌热点
  • 讯飞创意组竞赛备赛指南:从零到获奖的完整流程与经验分享
  • 2025年AI图像生成器终极指南:从创意到商业应用
  • 腾讯云CentOS7部署Nacos 2.x完整指南:从端口配置到防火墙设置
  • 国密算法SM2 vs RSA:实战性能对比与迁移指南(附测试代码)
  • 造相Z-Image模型v2夜景生成效果展示:光影与氛围的精准控制