我有一個字串開始日期,比如“2021 Q3”,我想在開始日期之后創建一個“Year Quarter”向量。例如,如果所需長度為 5,我的輸出將是
“2021 年第三季度” “2021 年第四季度” “2022 年第一季度” “2022 年第二季度” “2022 年第三季度”
我嘗試在基礎 R 中使用 as.Date() 無濟于事。
在 R 中有一種簡潔的方法嗎?
uj5u.com熱心網友回復:
將輸入 x 轉換為 yearqtr 類。它將年和季度內部表示為年 0、1/4、1/2 和 3/4,因此只需添加所需的任何季度數。它如圖所示呈現它們。有關?yearqtr更多資訊,請參閱。
library(zoo)
x <- "2021 Q3"
as.yearqtr(x) seq(0, length = 5) / 4
## [1] "2021 Q3" "2021 Q4" "2022 Q1" "2022 Q2" "2022 Q3"
uj5u.com熱心網友回復:
我很開心地寫了這個荒謬的函式,然后看到了 G.Grothendieck 的精彩回答,并自嘲:
library(lubridate)
library(stringr)
f <- function(s,n) {
y=as.numeric(str_extract(s,"\\d{4}"))
q = as.numeric(str_extract(s,"(?<=Q)\\d "))
dates = seq(make_date(y,q*3,15),by="quarter", length.out=n)
paste0(year(dates), " Q", quarter(dates))
}
用法:
f("2020 Q2",30)
輸出:
[1] "2020 Q2" "2020 Q3" "2020 Q4" "2021 Q1" "2021 Q2" "2021 Q3" "2021 Q4" "2022 Q1" "2022 Q2" "2022 Q3" "2022 Q4" "2023 Q1" "2023 Q2" "2023 Q3" "2023 Q4" "2024 Q1"
[17] "2024 Q2" "2024 Q3" "2024 Q4" "2025 Q1" "2025 Q2" "2025 Q3" "2025 Q4" "2026 Q1" "2026 Q2" "2026 Q3" "2026 Q4" "2027 Q1" "2027 Q2" "2027 Q3"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480383.html
