如何使用 openxslx 和 R 创建循环?

How to create a loop with openxslx and R?

我有两个数据框。一个是原始数据,另一个是聚合数据。

我的两个数据框是 iris 数据集的变体 (iris & iris_summary)

iris$ID <- 1:150

iris_summary <- iris %>% 
  group_by(Species) %>% 
  summarize(
    "Count of Species" = n(),
    "Average Sepal.Length" = mean(Sepal.Length),
    "Average Sepal.Width" = mean(Sepal.Width),
    "Average Petal.Length" = mean(Petal.Length),
    "Average Petal.Width" = mean(Petal.Width)
    )

现在我有一个 excel 工作簿,我想将其加载到我的环境中,该工作簿具有预设格式和 4 张纸。

Sheet 1: 说明 Sheet2:总结Table Sheet3:原始数据 Sheet4:联系方式

我需要为每个“物种”(setosa、veriscolor 和 virginica)创建 3 个单独的 excel 文件。

在 Sheet 2 中:我需要包括每个物种的摘要统计信息。 这是摘要中“setosa”统计信息的示例 Table

而在Sheet 3:我只需要包含“setosa”的原始数据。

Sheets 1 & 4可以单独留下。

循环看起来像什么?我需要一个 excel 文件——对 Iris 数据集中的所有 3 个物种使用这个格式化的工作簿。我的实际数据有大约 30 个分类变量(与 iris 数据集中的 3 'species' 相比),手动复制和粘贴它们会花费数小时。

已尝试更新代码

wb <- loadWorkbook("Sample Workbook.xlsx")

for (i in iris$Species){
  print(i)
  FilterData <- iris %>% filter(Species == i) 
  filename <- paste0(i, "-data.xlsx")
  
  writeData(wb, sheet="Summary Table", i)
}

我能够使用此代码解决我的问题

#Code Works for sheet 2 & 3
for (i in iris_summary$Species){
  print(i)
  FilterData <- iris_summary %>% filter(Species == i) 
  FilterData2 <- iris %>% filter(Species == i)
  
  wb <- loadWorkbook("Sample Workbook.xlsx")
  
  writeData(wb, 2, FilterData)
  writeData(wb, 3, FilterData2)
  saveWorkbook(wb, file = paste0(i, "-data.xlsx"), overwrite = TRUE)
}