【发布时间】:2020-03-11 21:25:28
【问题描述】:
我有以下数据框
data_frame <- data.frame(sku = c("A","B","C"), forecast1 = c(1,2,3), forecast2 = c(4,5,6), forecast3 = c(7,8,9))
我想将 de 列名转换为格式为 yearmon 的日期序列,并使用以下形状收集它们:
colnames(data_frame)[2:4] <- c("2020_03","2020_04","2020_05")
gather(data_frame,"yearmon","forecast",2:4)
我尝试了以下方法:
months <- list()
date_origin <- as.yearmon("2020-02")
for (i in 1:3){
months[i] <- as.yearmon(months + i/12)
}
colnames(df_prevision)[c(2:84] <- months
df_prevision_gather <- gather(df_prevision,"month","forecast",2:4)
【问题讨论】:
-
代替
months为list,可能你需要一个vector,months <- c(); Also, inside the loop,months` 被称为as.yearmon是一个空的。列表。可能你需要调用 colnames -
也许你需要
months <- c(); nm1 <- names(data_frame)[-1];for(i in seq_along(nm1)) months[i] <- as.character(zoo::as.yearmon(nm1[i], "%Y_%m") + i/12) > months [1] "Apr 2020" "Jun 2020" "Aug 2020" -
你需要
gather(data_frame,"yearmon","forecast",2:4) %>% mutate(yearmon = as.yearmon(yearmon, "%Y_%m"))吗?