gpt4 book ai didi

R:把几个月变成季度

转载 作者:行者123 更新时间:2023-12-02 01:36:18 25 4
gpt4 key购买 nike

我有一个看起来像这样的数据集:

> ex
# A tibble: 10 × 2
tenor delivery_window
<chr> <chr>
1 month Nov 22
2 quarter Jan 22
3 year Cal 24
4 year Cal 22
5 month Feb 22
6 quarter Jan 21
7 month Sep 22
8 quarter Jan 21
9 month Jun 21
10 month Aug 21

我想把它变成这样的东西:

> ex
# A tibble: 10 × 3
tenor delivery_window new_tenor
<chr> <chr> <chr>
1 month Nov 22 Nov 22
2 quarter Jan 22 Q1 22
3 year Cal 24 Cal 24
4 year Cal 22 Cal 22
5 month Feb 22 Feb 22
6 quarter Jan 21 Q1 21
7 month Sep 22 Sep 22
8 quarter Jan 21 Q1 21
9 month Jun 21 Jun 21
10 month Aug 21 Aug 21

也就是说,如果 tenorquarter,我只想显示与 delivery window 对应的季度,而不是月份。每月和每年的期限可以保持不变。

有人可以给我一个关于如何实现这一点的提示吗?提前谢谢你。

编辑

new_tenor 应该是 Q1 YY 从一月到三月,Q2 YYApr YYJun YYQ3 YYJul YYSep YYQ4 YY Oct YYDec YY 的月份。

最佳答案

我们可以用as.yearqtr(来自zoo)转换成yearqtr,并用case_when替换“delivery_window”中具有转换值的元素

library(dplyr)
library(stringr)
library(zoo)
ex <- ex %>%
mutate(new_tenor = case_when(tenor == 'quarter'
~ str_replace(as.yearqtr(paste('1', delivery_window),
'%d %b %Y'), "(\\d+) (\\w+)", "\\2 \\1")
, TRUE ~ delivery_window))

关于R:把几个月变成季度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72350939/

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