首页 > 解决方案 > 循环遍历数据框,收集数据,创建新的数据框

问题描述

我有下面的数据框(实际上它跨越了几百行相同的数据)。

project_number  hours  team_member    project_lead    team_member_email
      RR711-132     4   Isaac Bell    Dan Case          ib@blank.com
      RR711-135    10   Isaac Bell    Lawrence Cowan    ib@blank.com
     USU887-101    50   Keith Olsen   Aaron Anderson    aa@blank.com
      VE902-102    30   Chase Harmon  Isaac Bell        ch@blank.com
      SS99-133     50   Chase Harmon  Jack Spain        ch@blank.com

目标是向团队成员发送一封电子邮件,其中包括一个包含项目编号、小时数和项目负责人详细信息的表格。

我正在使用 RDCOMClient 发送电子邮件,并使用“purrr”包来遍历向量。

mail_fun <- function(name, mail) {
  outMail = OutApp$CreateItem(0)
  ## configure  email parameter
  outMail[["To"]] = mail
  outMail[["subject"]] = "Project hours for next week"
  outMail[["HTMLBody"]] = paste0("Dear ", name, "<p>Testing sending hours through R</>")
  ## send it
  outMail$Send()
}

map2(test.df$team_member, test.df$email, ~mail_fun(name = .x, mail = .y)) 

我知道代码需要修改,但循环和发送电子邮件一样有效。我想不通的是如何创建一个专门针对 team_member 的表(数据框)并通过电子邮件发送。

例如,将向 Isaac Bell 发送一封电子邮件,该电子邮件的正文中将有一个看起来像这样的表格(我不知道如何在这里制作一个好看的表格):

Isaac,

You have been assigned the following hours to the following project for this week:

Project Number     Hours       Project Lead
RR711-132           4           Dan Case
RR711-135           10          Lawrence Cowan

标签: rloopsfor-loopvectorrdcomclient

解决方案


这里的关键是使用该split()功能。在列表中为每个团队成员创建数据框,然后遍历这些数据框并发送电子邮件。


推荐阅读