我想在 R 中使用 dplyr 在过滤器函数上应用 for 循环。
sumstats<-function(x) {
Countries <- c("abc","def","ghi")
for (val in Countries) {
result <- df %>% filter(COUNTRY.NAME == val)
write.xlsx(result, "result.xlsx")
}
}
但是此函数会覆盖 Excel 上的现有工作表,我希望将数据写入单个工作簿上的单独 Excel 工作表上。
最佳答案
您必须使用 sheetName = val
创建工作表名称,并将该工作表附加到您的 Excel 文件中。
sumstats<-function(x) {
Countries <- c("abc","def","ghi")
for (val in Countries) {
result <- df %>% filter(COUNTRY.NAME == val)
write.xlsx(result,
file = "result.xlsx",
sheetName = val,
append = TRUE)
}
}
如果您更喜欢使用管道,您可以像这样连接 filter
和 write.xlsx
:
df %>%
filter(COUNTRY.NAME == val) %>%
write.xlsx(file = "result.xlsx", sheetName = val, append = TRUE)
<小时/>
添加了 append = TRUE
(附加到现有文件)。
关于r - 如何使用 dplyr 在具有过滤功能的函数内应用 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279598/