gpt4 book ai didi

r - 在 R 中获取上一年的最后一天?

转载 作者:行者123 更新时间:2023-12-04 10:54:31 26 4
gpt4 key购买 nike

所以问题是如何选择上一年的最后一天。我想将其设置为自动,因为我们可能会这样做几年。

我已经设置的是这样的:

lastyear <- as.numeric(format(today, "%Y")) - 1

今天只是一个带有 Sys.Date() 的对象,所以我认为我不需要为此提供代码? (如果有人真的想知道,它是日期的格式。)

我上面的代码在前一年很好,但我想要一些为我挑选“2014-12-31”的东西。

所以,重复的问题是我如何才能 自动 找出前一年的最后一天?

另外,我在这个脚本中使用了 lubridate。

最佳答案

这是一个 Hadleyverse 版本:

library(lubridate)

last_day_prev_year <- function(x) floor_date(x, "year") - days(1)

last_day_prev_year(Sys.Date())
## [1] "2014-12-31 UTC"

我实际上对“基本”答案投了赞成票,因为它是基本的,而且——正如 GSee 所指出的——不太可能有问题。 lubridate 答案最重要的是可读性。它也失去了速度:
library(microbenchmark)
library(lubridate)

ldpy_base <- function(x) {
lastyear <- as.numeric(format(x, "%Y")) - 1
last_date <- as.Date(sprintf('%s-12-31',lastyear))
}

ldpy_lubridate <- function(x) floor_date(x, "year") - days(1)


mb <- microbenchmark(ldpy_base(Sys.Date()),
ldpy_lubridate(Sys.Date()),
times=5000)

autoplot(mb) + labs(title="5,000 runs, base vs lubridate")

enter image description here

关于r - 在 R 中获取上一年的最后一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27845371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com