【发布时间】:2020-02-18 09:43:43
【问题描述】:
我有这个通过库发送邮件的功能,RDCOMClient。我之前使用过它,两个输入都来自使用purrr 中的map2 函数的数据帧。
现在我已将函数扩展为包含三个输入,但我似乎无法将其正确应用于数据帧。
我的数据是这样的:
df <- data.frame(Name = c("Name 1", "Name 2"),
Old_mail = c("Old mail 1", "Old mail 2"),
New_mail = c("New mail 1", "New mail 2"))
还有我的功能:
library(RDCOMClient)
mail_fun <- function(name, old_mail, new_mail){
# Open Outlook
OutApp <- COMCreate("Outlook.Application")
# Create mail
outMail = OutApp$CreateItem(0)
# Set receiver
outMail[["To"]] = as.character(new_mail)
# Set subject
outMail[["subject"]] = "Some subject"
# Set body
outMail[["body"]] = paste(
"Dear ", name,
" \n \nBla bla bla", old_mail, "bla bla bla", sep="")
# Send mail
outMail$Send()
# Pause for a second
Sys.sleep(1)
}
现在我想将函数应用到每一行,这样Name 1、Old mail 1 和New mail 1 分别用于name、old_mail 和new_mail,分别用于第一次迭代等第四次。
据我所知,我必须使用pmap 函数。我只是不知道怎么做。
提前致谢!
此致,
埃米尔·布利彻
【问题讨论】:
-
它创建了一个所谓的 COM 对象。基本上,它告诉 R “打开” Outlook”。
标签: r functional-programming purrr rdcomclient