如何使用 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)
}
我有两个数据框。一个是原始数据,另一个是聚合数据。
我的两个数据框是 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)
}