如何在R中实现F字符串功能 导出携带昨日日期的xlsx文件
R 导出文件自动拼接日期的实现方法
首先注意R函数大小写敏感,获取系统日期的正确写法是Sys.Date(),你之前使用的Sys.date()会报错。以下是三种可直接落地的实现方案:
方法1:基础R原生实现(无需额外装包,通用场景首选)
使用R自带的字符串拼接函数paste0直接拼接固定文件名和日期变量即可:
# 定义昨日日期变量 yesterday <- Sys.Date() - 1 # 拼接生成完整文件名 file_name <- paste0("Mydata_vtu_autoreport_", yesterday, ".xlsx") # 导出文件 write_xlsx(ecosftp, file_name)
方法2:类Python f-string写法(语法更直观)
你用到的{变量名}插值语法是glue包提供的功能,未加载该包时无法直接识别:
# 首次使用先安装包 install.packages("glue") # 加载包 library(glue) yesterday <- Sys.Date() - 1 # 直接通过{}插入变量,和你预期的写法一致 file_name <- glue("Mydata_vtu_autoreport_{yesterday}.xlsx") write_xlsx(ecosftp, file_name)
方法3:格式化字符串写法(适合复杂格式需求)
使用sprintf实现C风格的字符串格式化:
yesterday <- Sys.Date() - 1 file_name <- sprintf("Mydata_vtu_autoreport_%s.xlsx", yesterday) write_xlsx(ecosftp, file_name)
可选拓展:自定义日期格式
如果需要调整日期显示样式(比如去掉横杠生成20211009格式),可以用format()函数预处理日期变量:
yesterday <- Sys.Date() - 1 # 转换为无分隔符的8位数字日期格式 yesterday_formatted <- format(yesterday, "%Y%m%d") file_name <- paste0("Mydata_vtu_autoreport_", yesterday_formatted, ".xlsx")
内容的提问来源于stack exchange,提问作者Yomi.blaze93
相关产品推荐
相关产品推荐

