我正在尝试使用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函数和这里的需求。
答案 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()