如何解决使用 R 中的自定义函数和列表创建包含多个工作表的 Excel 文件
我正在尝试创建多个 Excel 数据提取,每个文件中有多个工作表。我有一个目前正在运行的解决方案。但是,编码感觉很复杂,我觉得有一种更好的方法可以实现相同的最终结果。
以下是关于我正在努力实现的目标的非常基本的表示。要重新创建代码,请更改嵌入在最后一个“lapply”函数中的文件路径。
工作示例
library(tidyverse)
library(openxlsx)
df <- data.frame(group_1 = c('a','b','c'),var_1 = c(1:9))
df_list <- split(df,df$group_1)
sum_summary_fn <- function(df,i){
df[[i]] %>%
group_by(group_1) %>%
summarize(total = sum(var_1)) %>%
ungroup()
}
mean_summary_fn <- function(df,i){
df[[i]] %>%
group_by(group_1) %>%
summarize(avg = mean(var_1)) %>%
ungroup()
}
sum_summary_list <- lapply(seq_along(df_list),function(i) FUN = sum_summary_fn(df_list,i))
mean_summary_list <- lapply(seq_along(df_list),function(i) FUN = mean_summary_fn(df_list,i))
lapply(seq_along(df_list),function(i){
file_location <- paste0("CHANGE FILE PATH",names(df_list[i]),".xlsx")
wb <- createWorkbook()
addWorksheet(wb,sheet = 'sum_summary')
writeData(wb,sheet = 'sum_summary',x = sum_summary[[i]])
addWorksheet(wb,sheet = 'mean_summary')
writeData(wb,sheet = 'mean_summary',x = mean_summary[[i]])
addWorksheet(wb,sheet = 'raw_data')
writeData(wb,sheet = 'raw_data',x = df_list[[i]])
saveWorkbook(wb = wb,file = file_location,overwrite = T)
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。