r - 基于两列中的嵌套类别在 R 中创建和导出 Excel 文件
问题描述
R 用户,我有一个包含不同州的数据集,每个州都有许多银行及其评级分数。从excel数据文件中,我想:
- 为 States 列的每个州创建一个单独的文件夹,并且 2) 将每个银行导出到其自己州内的单独 excel 文件中。
以下是用于解释的模拟数据:
States = rep(c("AR", "KS", "CA", "MO", "NE"),times = c(10, 5, 15, 8, 12))
Banks = c(paste0("Bank_", 1:50))
Rating = rnorm(50, mean=30, sd=5)
MyData = data.frame(States, Banks, Rating)
我一直使用dir.create("MyFolder")
创建文件夹的功能,并使用MapmyList = split(df, df$States) Map(openxlsx::write.xlsx, myList, paste0(names(myList), '.xlsx'))
导出excel文件,但我不知道如何组合这些。
结果应包括五个不同的文件夹,每个文件夹应根据州名命名,每个州文件夹应包括位于该州的银行,excel 文件的名称应根据“银行” “ 柱子。非常感谢。
解决方案
这是一个解决方案,使用purrr
MyData %>%
nest(-States,-Banks) %>%
pwalk(
.f = function(States,data,Banks){
dir.create(States)
openxlsx::write.xlsx(x = data, file = file.path(getwd(),States,paste0(Banks,".xlsx")))
})
结果
list.files(full.names = T,include.dirs = T)
"./AR" "./CA" "./KS" "./MO" "./NE"
list.files(path = file.path(getwd(),"AR"))
[1] "Bank_1.xlsx" "Bank_10.xlsx" "Bank_2.xlsx" "Bank_3.xlsx" "Bank_4.xlsx" "Bank_5.xlsx"
[7] "Bank_6.xlsx" "Bank_7.xlsx" "Bank_8.xlsx" "Bank_9.xlsx"
推荐阅读
- date - MapBasic - 将 Excel 日期转换为 MapInfo 日期
- java - 当我清楚地覆盖平等方法时,我似乎无法弄清楚为什么我一直保持真实
- c# - WPF DataGrid 组标题:鼠标悬停时可选择并更改颜色
- python - 如何将组数映射到熊猫中的另一个数据框
- gatsby - 悬停按钮不显示 URL 预览 - Gatsby
- javascript - 从函数设置 src 时,iframe HTML 标记拒绝连接
- python - 确定对象是字符串还是数据框
- javascript - 将数组转换为对象数组
- swiftui - SwiftUI NavigationLink 错误:未命名的参数 #2 必须在参数“目的地”之前
- c# - Serilog 未登录 MariaDb 数据库