如何用好R语言的 openxlsx 包,从创建、读取到修改数据

在数据科学的日常工作中,Excel 文件因其广泛使用和易于共享的特性,成为了数据存储和交换的常见格式。对于 R 用户来说,如何高效地创建、读取和修改 Excel 文件是一项重要的技能。在这篇文章中,我们将探讨如何使用 R 的 openxlsx 包来处理复杂的 Excel 数据,并演示一些实际应用场景。

为什么选择 openxlsx 包?

openxlsx 是一个轻量级且功能较为强大的 R 包,专门用于处理 Excel 文件。与其他类似的 R 包(如 xlsx 或 readxl)相比,openxlsx 提供了更丰富的功能和更高的操作灵活性。特别是在需要对 Excel 文件进行复杂的格式设置、图表插入以及保护工作表等高级操作时,openxlsx 是一个理想的选择。

使用 openxlsx 处理复杂数据的示例

为了展示 openxlsx 的功能,接下来我们将通过一个包含多种数据类型的示例来详细介绍该包的用法。让我们从创建一个新的 Excel 文件开始,并向其中添加一个复杂的数据表。这个数据表包含了员工的基本信息,包括姓名、年龄、入职日期、工资和所在部门。我们不仅会写入这些数据,还会应用一些格式设置、合并单元格、插入图表,甚至保护工作表以防止意外修改。

 ........

欢迎订阅我们专栏,深度系统地学习R语言。 

为帮助大家更出色地掌握临床统计、数据挖掘以及人工智能建模的入门知识和应用,由于众多同学在计算机编程上经验欠缺,特此开设《用R 探索医药数据科学》专栏。该专栏每周至少会定期更新三篇,直到整个专栏更新完成。每篇文章都在 5000 字以上,质量平均分高达 94 分。还要提醒大家的是,每结束一个章节,专栏的优惠力度就会减小,当下正是订阅的最佳优惠时段,诚邀各位积极订阅!

专栏《用R 探索医药数据科学》链接:https://blog.csdn.net/2301_79425796/category_12729892.html?spm=1001.2014.3001.5482

​​​

代码如下

# 安装并加载 openxlsx 包
install.packages("openxlsx")
library(openxlsx)

# 创建新的工作簿并添加工作表
wb <- createWorkbook()
addWorksheet(wb, "Sheet1")

# 准备更加复杂的数据,包括15个人,薪水均低于10,000
data <- data.frame(
  ID = 1:15,
  Name = c("John Doe", "Jane Smith", "Alice Johnson", "Chris Lee", "Eve Brown",
           "Michael Green", "Sara White", "David Black", "Anna Blue", "Tom Red",
           "Olivia Purple", "Liam Gray", "Sophia Pink", "Noah Orange", "Emma Yellow"),
  Age = c(28, 34, 45, 23, 31, 37, 29, 40, 26, 33, 39, 42, 24, 30, 35),
  StartDate = as.Date(c("2024-01-15", "2024-06-22", "2024-08-05", "2024-02-14", "2024-10-01",
                        "2024-03-11", "2024-04-18", "2024-07-30", "2024-05-15", "2024-09-21",
                        "2024-11-03", "2024-12-12", "2024-01-25", "2024-06-06", "2024-08-19")),
  Salary = c(9500, 8700, 9200, 8800, 7300, 8100, 9900, 7600, 9000, 8500, 9100, 8900, 9400, 7800, 8300),
  Department = c("HR", "Finance", "IT", "Marketing", "Sales",
                 "Legal", "Customer Service", "Operations", "HR", "Finance",
                 "IT", "Marketing", "Sales", "Legal", "Customer Service")
)

# 写入数据到工作表
writeData(wb, "Sheet1", data)

# 设置单元格样式(例如,将列标题加粗并设置背景颜色)
headerStyle <- createStyle(fontColour = "#FFFFFF", fgFill = "#4F81BD", halign = "center", textDecoration = "Bold")
addStyle(wb, sheet = 1, style = headerStyle, rows = 1, cols = 1:6, gridExpand = TRUE)

# 合并单元格(例如,在某些列上合并标题行)
mergeCells(wb, sheet = 1, cols = 5:6, rows = 1)

# 设置列宽和行高,使内容更加适合
setColWidths(wb, sheet = 1, cols = 1:6, widths = c(5, 15, 5, 12, 10, 12))
setRowHeights(wb, sheet = 1, rows = 1:16, heights = 20)

# 在工作表中插入一个带有复杂关系的图表
plot(data$Age, data$Salary, main = "Age vs. Salary", xlab = "Age", ylab = "Salary", col = "blue", pch = 16)
insertPlot(wb, sheet = 1, width = 6, height = 4, startRow = 17, startCol = 1)

# 保护工作表,防止意外修改
protectWorksheet(wb, sheet = 1, password = "securePassword")

# 保存 Excel 文件
saveWorkbook(wb, "complex_example_v2.xlsx", overwrite = TRUE)

# 读取 Excel 文件中的数据,并打印到控制台
data_read <- read.xlsx("complex_example_v2.xlsx", sheet = 1)
print(data_read)

通过这个示例,我们可以看到 openxlsx 包在处理 Excel 文件时的灵活。无论是简单的数据写入,还是复杂的格式设置和图表插入,openxlsx 都能轻松应对。在日常的数据分析和报告生成工作中,掌握 openxlsx 包的使用,将大大提高工作效率。如果你经常需要与 Excel 文件打交道,不妨试试 openxlsx,它将成为你数据处理的得力工具。 

 

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据科学和人工智能兴趣组

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值