根据两列中的嵌套类别在 R 中创建和导出 Excel 文件

Creating and Exporting Excel files in R based on nested Categories in two Columns

R 用户, 我有一个包含不同州的数据集,每个州都有许多银行及其评级分数。从 excel 数据文件,我想:

  1. 为 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")的功能来创建文件夹,并使用地图myList = 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"