r - 如何使用 dplyr 在具有过滤功能的函数内应用 for 循环?

标签 r excel

我想在 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)
    }
}

如果您更喜欢使用管道,您可以像这样连接 filterwrite.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/

相关文章:

class - 类模块的子对象在 vba for excel 中不起作用

python - openpyxl - 迭代列和行以从工作表中间获取数据

vba - 将字典清空到 Excel 工作表的最快方法

r - 保存并加载 ggplot 图

r - R 中的 for 循环与 while 循环

r - 在facet_wrap图中添加 "floating"轴标签

r - ggplot2 & stat_ellipse : Draw ellipses around multiple groups of points

html - 包括带有 knitr 的交互式 3D 人偶

excel - 将单元格中的值范围转换为逗号分隔列表

excel - 在 "."分隔符的最后(或第四次)出现处拆分字符串