R 函数,它给我一个月的所有日期列表

R 函数,它给我一个月的所有日期列表,r,function,date,R,Function,Date,是否有一个函数可以列出指定月份的所有日期 即: proper_function("January",2019) 结果是 [1] "2019-01-01" "2019-01-02" "2019-01-03" "2019-01-04" "2019-01-05" "2019-01-06" "2019-01-07" [8] "2019-01-08" "2019-01-09" "2019-01-10" "2019-01-11" "2019-01-12" "2019-01-13" "2019-01-1

是否有一个函数可以列出指定月份的所有日期

即:

proper_function("January",2019)
结果是

 [1] "2019-01-01" "2019-01-02" "2019-01-03" "2019-01-04" "2019-01-05" "2019-01-06" "2019-01-07"
 [8] "2019-01-08" "2019-01-09" "2019-01-10" "2019-01-11" "2019-01-12" "2019-01-13" "2019-01-14"
[15] "2019-01-15" "2019-01-16" "2019-01-17" "2019-01-18" "2019-01-19" "2019-01-20" "2019-01-21"
[22] "2019-01-22" "2019-01-23" "2019-01-24" "2019-01-25" "2019-01-26" "2019-01-27" "2019-01-28"
[29] "2019-01-29" "2019-01-30" "2019-01-31"

我可以写一个简单的程序,因为除了二月,每个月都有固定的日期,但我想在一些基本的软件包中应该有一些exist函数,写一个应该不难。仅使用base R即可执行以下操作

proper_function <- function(month, year) {
   start <- as.Date(paste0("01", month,year), "%d%B%Y")
   end <- seq(start, length.out = 2, by = "month")[2]
   seq(start, end - 1, by  = "day")
}

proper_function("June",2019)
# [1] "2019-06-01" "2019-06-02" "2019-06-03" "2019-06-04" "2019-06-05"....  
#     "2019-06-25" "2019-06-26" "2019-06-27" "2019-06-28" "2019-06-29" "2019-06-30"

proper_function("February",2019)
#[1] "2019-02-01" "2019-02-02" "2019-02-03" "2019-02-04" "2019-02-05" ....
#    "2019-02-25" "2019-02-26" "2019-02-27" "2019-02-28"

您可以决定输入的格式,并相应地更改as.Date中的格式选项

您可以使用lubridate软件包。您只需按以下格式提供月份:

proper_function <- function(x) {
  x <- as_date(x)
  y <- days_in_month(x)
  as_date(1:y, origin = x-1)
}
x <- c("2012-02-01")
proper_function(x)
 [1] "2012-02-01" "2012-02-02" "2012-02-03" "2012-02-04" "2012-02-05" "2012-02-06" "2012-02-07" "2012-02-08"
 [9] "2012-02-09" "2012-02-10" "2012-02-11" "2012-02-12" "2012-02-13" "2012-02-14" "2012-02-15" "2012-02-16"
[17] "2012-02-17" "2012-02-18" "2012-02-19" "2012-02-20" "2012-02-21" "2012-02-22" "2012-02-23" "2012-02-24"
[25] "2012-02-25" "2012-02-26" "2012-02-27" "2012-02-28" "2012-02-29"

尝试适当的功能我想我是通过删除一个月内无效日期的NA而得到你的想法的,但是%b可能会更改为%b以满足我的原始信息一月而不是一月@nicolaSo你从我的信息中获得初始日期,然后找到下个月的第一个日期,从而获得本月的结束点,然后根据一个月的第一个和最后一个日期获取序号,思路很清楚~关键方法是第二行,如果没有直接的方法,它可以帮助您计算每个月有多少个日期,我想这个works@cloudscomputes您可以从lubridate优化一点或保存一些按键,以获得end using month,但我不知道有直接的功能。