【发布时间】:2023-01-20 19:59:11
【问题描述】:
我正在尝试将数据框列转换为日期格式。我正在使用 zoo 包,但无法正常工作。所需的输出是 yyyy-mm-dd,因此每年有 4 个日期。
到目前为止,这是我尝试过的:
library(dplyr)
library(zoo)
as.yearqtr(1930, Q2)
as.yearqtr(1930, Q2, format = "%Y %Q%q")
【问题讨论】:
我正在尝试将数据框列转换为日期格式。我正在使用 zoo 包,但无法正常工作。所需的输出是 yyyy-mm-dd,因此每年有 4 个日期。
到目前为止,这是我尝试过的:
library(dplyr)
library(zoo)
as.yearqtr(1930, Q2)
as.yearqtr(1930, Q2, format = "%Y %Q%q")
【问题讨论】:
这是你需要的吗?
library(zoo)
#>
#> Attaching package: 'zoo'
#> The following objects are masked from 'package:base':
#>
#> as.Date, as.Date.numeric
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
test = data.frame(year = rep(2000, 4),
qtr = paste0("Q", 1:4))
test |>
mutate(
qtr.num = case_when(
qtr == "Q1" ~ 0,
qtr == "Q2" ~ 0.25,
qtr == "Q3" ~ 0.5,
qtr == "Q4" ~ 0.75),
quarter = as.yearqtr(year + qtr.num) |> as.Date())
#> year qtr qtr.num quarter
#> 1 2000 Q1 0.00 2000-01-01
#> 2 2000 Q2 0.25 2000-04-01
#> 3 2000 Q3 0.50 2000-07-01
#> 4 2000 Q4 0.75 2000-10-01
创建于 2023-01-20 reprex v2.0.2
【讨论】: