使用RDCOMClient发送邮件时如何在主题中添加前一天日期?
报错原因
R 语言中 + 仅支持数值类型的算术运算,不支持字符串拼接操作。你尝试用 + 连接字符串和日期类型数据,不符合语法规则,因此触发非数值参数传入二元运算符的报错。
解决方案
使用 R 自带的字符串拼接函数 paste() 或 paste0() 替换原有拼接逻辑即可:
paste()拼接时默认自动添加空格分隔内容paste0()拼接时不会自动添加分隔符,完全按传入顺序拼接内容
修正后完整代码
d1 <- Sys.Date() - 1 OutApp <- COMCreate("Outlook.Application") outMail = OutApp$CreateItem(0) outMail[["To"]] = "anc@xyb.com" # 直接拼接,日期默认输出为 YYYY-MM-DD 格式 outMail[["subject"]] = paste("Database collection dated", d1) # 如果需要自定义日期格式,可使用 format 函数转换后再拼接,示例如下: # d1_format <- format(d1, "%Y年%m月%d日") # outMail[["subject"]] = paste0("Database collection dated ", d1_format) outMail$Send()
注:原有代码中
paste("anc@xyb.com")没有多内容拼接需求的话可以直接去掉paste(),直接赋值字符串即可。
内容的提问来源于stack exchange,提问作者MSM
相关产品推荐
相关产品推荐

