R 从季度数据到年度数据
我有一个如下所示的数据帧:R 从季度数据到年度数据,r,dataframe,dplyr,time-series,lubridate,R,Dataframe,Dplyr,Time Series,Lubridate,我有一个如下所示的数据帧: head(df_HPI) HPI是我想转换为年度的季度指数。我有17个地区(即CCAA),因此我希望汇总HPI以包含每个地区的年度数据。我做了一些更改,但代码不起作用 # Convert series to annual data df_HPI <- df_HPI_original # Replace period format df_HPI <- data.frame(sapply(df_HPI, function(x) {gsub("T1","
head(df_HPI)
HPI是我想转换为年度的季度指数。我有17个地区(即CCAA),因此我希望汇总HPI以包含每个地区的年度数据。我做了一些更改,但代码不起作用
# Convert series to annual data
df_HPI <- df_HPI_original
# Replace period format
df_HPI <- data.frame(sapply(df_HPI, function(x) {gsub("T1","-01-01",x)})) # Q1
df_HPI <- data.frame(sapply(df_HPI, function(x) {gsub("T2","-04-01",x)})) # Q2
df_HPI <- data.frame(sapply(df_HPI, function(x) {gsub("T3","-07-01",x)})) # Q3
df_HPI <- data.frame(sapply(df_HPI, function(x) {gsub("T4","-10-01",x)})) # Q4
# Convert column into a date
df_HPI$Periodo <- as.Date(df_HPI$Periodo)
# Aggregate to annual data
df_HPI %>%
mutate(Year=year(Periodo),
Quarter=quarter(Periodo),
Finyear = ifelse(Quarter <= 2, Year, Year+1)) %>%
group_by(Finyear, CCAA) %>%
summarise(HPIy=mean(HPI))
#将序列转换为年度数据
df_HPI问题在于,通过gsub
替换期间格式时,HPI
列被转换为一个因子。因此,必须将其转换回数值。试试这个:
库(dplyr)
图书馆(lubridate)
种子(42)
#示例数据
第3季度2019T3区域1 0.2861395
#>4 2019T4地区1 0.8304476
#>5 2020T1区域1 0.6417455
#>6 2020T2区域1 0.5190959
#替换周期格式
df_HPI财政年度CCAA HPIy
#>
#>2019年地区1 0.926
#>2 2019区域2 0.681
#>3 2020地区1 0.569
#>4 2020地区2 0.592
#>5 2021区域1 0.436
#>6 2021区域2 0.701
由(v0.3.0)于2020年4月4日创建。欢迎使用堆栈溢出!我认为您需要为其他人提供一个数据样本,以复制您的问题。查找为R制作一个好的reprex。欢迎使用堆栈溢出。我建议你这样提问。这将最大限度地提高您获得好的、快速的答案的机会。您可以通过执行dput(head(df_HPI))
将表格的前几行放入表格中,这样我们就可以处理一些数据,并确保我们的答案尽可能接近您的预期。我还建议避免使用magrittr
和所有花哨的东西。首先构建一个基本函数来理解问题。