【问题标题】:How to properly set a file path based on a yearly-date basis in R?如何在 R 中基于年度日期正确设置文件路径?
【发布时间】:2020-12-28 23:51:27
【问题描述】:

我试图防止将来对 R 中的路径文件进行调试,file_path_minus 对应于来自 10_2020 的文件(2020 年 10 月);

下个月的路径应该是去年而不是新年(2021 年), 是 11_2020(2020 年 11 月)预期的串联字符串,而不是像当前代码那样的 11_2021

我认为可扩展的功能会非常出色,因为这将应用于大量路径。

但是,我该如何处理呢? 有什么函数可以用来解决这个问题吗?

这是当前的路径编码:

# file name #
file_bs_minus<- paste("test", 
                      "_", 
                      lubridate :: month(Sys.Date() %m-% months(2)),
                      "_", 
                      lubridate :: year(Sys.Date()),
                      ".csv",
                      sep= "")
# path file #

path_bs_minus <- paste("data", "bases", file_bs_minus, sep= "/")

【问题讨论】:

  • 最好在完整日期上添加月份而不是提取
  • format(Sys.Date() %m-% months(2), "test_%m_%Y.csv")

标签: r date path lubridate


【解决方案1】:

我们可以对完整的Date 对象进行加法/减法,而不是提取month 并添加months,以避免与Yearformat 不匹配

format(Sys.Date() %m-% months(2), "test_%m_%Y.csv")

然后我们使用file.path来构造路径

file.path("data", "bases", format(Sys.Date() %m-% months(2), "test_%m_%Y.csv"))
#[1] "data/bases/test_10_2020.csv"

下个月的测试

format(as.Date("2021-01-05")  %m-% months(2), "test_%m_%Y.csv")
#[1] "test_11_2020.csv"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多