我有一个名称和邮件的数据框,我想创建一个循环,在其中 R 使用 RDCOMClient 库向所有这些人发送邮件,但使用他们各自的名称。数据框是
df <- data.frame("Name" = c("Name1", "Name2"), "Mail" = c("mail1@mail.com", "mail2@mail.com"))
由于我刚刚在一个考试项目中使用了 Python,因此我多次创建了带有多个变量的循环,例如:
for i,j in zip(df[1], df[2])
理想情况下,我的代码类似于
for (mail in df$Mail, name in df$Name) {
outApp <- COMCreate("Outlook.Application")
outMail = outApp$CreateItem(0)
outMail[["To"]] = mail
outMail[["subject"]] = "Subject"
outMail[["body"]] = paste(" Dear", name, "\n \n bla bla bla.")
outMail$Send()
Sys.sleep(0.5)
if (mail == df$Mail[-1]) cat("Done!")
}
但是,这会产生错误。
我想使用循环的原因有两个:
- 我希望 R 在开始下一次迭代之前暂停一下(我不知道这是否真的有必要,但如果我的数据框有超过一百封邮件,它可能会更好——我在这里可能是错的)。
- 我希望 R 打印消息“完成!” 完成后。
如果您有其他建议(我已经看到关于 lapply、sapply 等软件包的一些建议),他们非常欢迎!
我希望有人在那里知道该怎么做。
提前致谢,
埃米尔