【问题标题】:Create date with R用 R 创建日期
【发布时间】:2022-01-18 14:36:22
【问题描述】:

大家好,

我想在 R 中构建日期为: 02-06-年 15年。 代码如下:

library(timeDate)
listHolidays
seq=0:5000

data.iniziale <- as.Date("2015-01-01")

calendario = data.iniziale + seq

l = length(calendario)

for (i in 1:l){
    x[i]=as.Date(year(calendario[i]),06,02)
}

它不能按原样工作。 我该怎么办?

【问题讨论】:

    标签: r datetime


    【解决方案1】:

    类似于 Albins 解决方案,但我对问题的理解略有不同:

    format(seq(as.Date("2015-01-01"), as.Date("2030-01-01"), "year"), "%Y-06-02")
    

    输出:

     [1] "2015-06-02" "2016-06-02" "2017-06-02" "2018-06-02" "2019-06-02" "2020-06-02" "2021-06-02"
     [8] "2022-06-02" "2023-06-02" "2024-06-02" "2025-06-02" "2026-06-02" "2027-06-02" "2028-06-02"
    [15] "2029-06-02" "2030-06-02"
    

    【讨论】:

      【解决方案2】:

      我建议使用 R 的一些现有功能来简化您的任务。

      使用 seq 函数,您可以简单地生成日期序列。而格式如下图:

      format(seq(as.Date("2015-01-01"), as.Date("2030-01-01"), "days"), "%m-%d-%Y")
      

      输出(部分)

      [1] "01-01-2015" "01-02-2015" "01-03-2015" "01-04-2015" "01-05-2015" "01-06-2015" "01-07-2015" "01-08-2015"
      [9] "01-09-2015" "01-10-2015" "01-11-2015" "01-12-2015" "01-13-2015" "01-14-2015" "01-15-2015" "01-16-2015"
      

      【讨论】:

        【解决方案3】:

        另一种可能的解决方案,使用lubridate

        library(tidyverse)
        library(lubridate)
        
        str_c("2-6-", 2000:2014) %>% dmy
        
        #>  [1] "2000-06-02" "2001-06-02" "2002-06-02" "2003-06-02" "2004-06-02"
        #>  [6] "2005-06-02" "2006-06-02" "2007-06-02" "2008-06-02" "2009-06-02"
        #> [11] "2010-06-02" "2011-06-02" "2012-06-02" "2013-06-02" "2014-06-02"
        

        【讨论】:

          猜你喜欢
          • 2015-08-19
          • 1970-01-01
          • 2017-02-02
          • 1970-01-01
          • 2022-01-12
          • 1970-01-01
          • 2021-11-26
          • 2014-10-29
          • 1970-01-01
          相关资源
          最近更新 更多