我想将我的季度数据转换为每月数据,但得到了错误:

 Error in `mutate()`:
! Problem while computing `Month_Num = rep(rep(1:3, each = 2), 4)`.
✖ `Month_Num` must be size 8 or 1, not 24.

我知道Stack Overflow上已经有很多问题了,但我想try 一下,有人能帮我吗?

数据样本:

new_data <- data.frame(
  Year = c(2021, 2021, 2021, 2021, 2022, 2022, 2022, 2022),
  Quarter = c("1st Quarter", "2nd Quarter", "3rd Quarter", "4th Quarter", "1st Quarter", "2nd Quarter", "3rd Quarter", "4th Quarter"),
  Government_Expenditure = c(139.95, 132.93, 134.64, 141.10, 151.08, 140.79, 143.05, 149.32)
)

代码:

library(tidyr)

monthly_data <- new_data %>%
  mutate(Month_Num = rep(rep(1:3, each = 2), 4)) %>%
  mutate(Month = case_when(Month_Num == 1 ~ "January",
                           Month_Num == 2 ~ "February",
                           Month_Num == 3 ~ "March")) %>%
  select(-Month_Num) %>%
  pivot_longer(cols = c("Month", "Government_Expenditure"),
               names_to = c("Variable", ".value"),
               names_pattern = "(.*)\\.(.*)") %>%
  mutate(Month = as.numeric(Month)) %>%
  pivot_wider(names_from = Month, values_from = Government_Expenditure)

monthly_data

推荐答案

这可能会有帮助--为‘Quarter’和相应的‘Month’创建一个键/值嵌套数据,与‘Quarter’上的原始数据连接,unnest‘Month’的Tibble列,并用pivot_widerreshape 为‘Wide’格式

library(dplyr)
library(tidyr)
tibble(Month = month.name) %>%
  mutate(Quarter = rep(c("1st Quarter", "2nd Quarter", "3rd Quarter", 
    "4th Quarter"), each = 3)) %>%
  nest(data = Month) %>% 
  left_join(new_data, .) %>% 
  unnest(data) %>%
  pivot_wider(names_from = Month, values_from = Government_Expenditure)

R相关问答推荐

按列A中的值进行子集化,并获得列C中对应于R中列B的最大值行的值?使用循环自动化此操作

在处理因素时,Base R grep家族比stringr变体快得多

如何将多个数据帧附加到R中的多个相应的CSV文件中?

在R底座中更改白天和夜晚的背景 colored颜色

过滤器数据.基于两列的帧行和R中的外部向量

如何根据组大小应用条件过滤?

ggplot2中的X轴显示数值,单位为百,而不是十

我想在R中总结一个巨大的数据框架,使我只需要唯一的lat、lon、Date(Year)和Maxium Value""""""""

如何在R中合并两个基准点?

使用sf或terra的LINESTRAING的累积长度

在ggplot中为不同几何体使用不同的 colored颜色 比例

如何读取CSV的特定列时,给定标题作为向量

如何通过判断数据框的一列来压缩另一列?

使用带有OR条件的grepl过滤字符串

如何在科学记数法中显示因子

R中有约束的优化问题:如何用复数和对数效益函数解决问题?

防止在更新SHINY中的Reactive Value的部分内容时触发依赖事件

如何在使用Alpha时让geom_curve在箭头中显示恒定透明度

如何判断代码是否在R Markdown(RMD)上下文中交互运行?

构建一个6/49彩票模拟系统