有没有办法在滤波器的各个电平之间循环并在R中生成输出?

时间:2019-07-03 22:22:36

标签: r

我正在尝试使用R生成报告卡输出,但是有200多个需要他们自己的报告(我可以写成.csv或html的小输出)的代理(按我的水平)。

我在下面提供了一个可复制的示例。

library(tidyverse)
Agents <- c("A", "B", "C")
Month <- c("May", "June", "July")
Score1 <- c(5,7,1)
Score2 <- c(7,8,3)

x <- cbind(Agents, Month, Score1, Score2)
df <- as.data.frame(x)

df$Score1 <- as.numeric(as.character(df$Score1))
df$Score2 <- as.numeric(as.character(df$Score2))

Report <-  df %>% 
           group_by(Month) %>%
           summarise(Skill = mean(Score1), Attitude = mean(Score2))

我想遍历我的代理,将每个代理用作报表的过滤器,然后将其另存为Report_agentname。我看了一下purr,但不能完全了解map函数和这里的需求。

1 个答案:

答案 0 :(得分:0)

使用struct X,您可以创建自己的函数,并将报告另存为.csv或您想要的其他格式:

purrr

my_report <- function(x) { Report <- df %>% filter(Agents == x) %>% group_by(Month) %>% summarise(Skill = mean(Score1), Attitude = mean(Score2)) %>% write_csv(paste0("Report_", x, ".csv")) ## or whatever format you prefer } walk(df$Agents %>% unique, my_report) 不返回任何值。它将功能walk应用于my_report中的唯一代理。

如果您希望返回报告,则可以删除df函数并使用:

write_csv()