求助:为时间序列预测向R语言Data Frame添加行
如何按日期规律为R语言DataFrame追加行
我注意到你的数据里Week_Start是按每周7天的固定规律递增的,要追加5行用于填充时间序列预测值,我们可以按以下步骤操作:
步骤1:先将日期列转为标准日期格式
原始数据读入后,Week_Start是字符类型,我们需要先把它转换成R可识别的日期格式,这样才能方便生成后续的日期序列:
# 读取原始数据 zz <- "parts country_code Week_Start Qty part_country SLX01121X00 VN 10/15/2017 2 SLX01121X00_VN SLX01121X00 VN 10/22/2017 2 SLX01121X00_VN SLX01121X00 VN 10/29/2017 1 SLX01121X00_VN SLX01121X00 VN 11/5/2017 3 SLX01121X00_VN SLX01121X00 VN 11/12/2017 5 SLX01121X00_VN SLX01121X00 VN 11/19/2017 4 SLX01121X00_VN SLX01121X00 VN 11/26/2017 2 SLX01121X00_VN SLX01121X00 VN 12/3/2017 8 SLX01121X00_VN SLX01121X00 VN 12/10/2017 13 SLX01121X00_VN SLX01121X00 VN 12/17/2017 5 SLX01121X00_VN SLX01121X00 VN 12/24/2017 3 SLX01121X00_VN SLX01121X00 VN 12/31/2017 10 SLX01121X00_VN SLX01121X00 VN 1/7/2018 6 SLX01121X00_VN SLX01121X00 VN 1/14/2018 6 SLX01121X00_VN SLX01121X00 VN 1/21/2018 11 SLX01121X00_VN SLX01121X00 VN 1/28/2018 11 SLX01121X00_VN SLX01121X00 VN 2/4/2018 11 SLX01121X00_VN SLX01121X00 VN 2/11/2018 3 SLX01121X00_VN SLX01121X00 VN 2/18/2018 3 SLX01121X00_VN SLX01121X00 VN 2/25/2018 10 SLX01121X00_VN SLX01121X00 VN 3/4/2018 3 SLX01121X00_VN SLX01121X00 VN 3/11/2018 8 SLX01121X00_VN SLX01121X00 VN 3/18/2018 7 SLX01121X00_VN SLX01121X00 VN 3/25/2018 4 SLX01121X00_VN SLX01121X00 VN 4/1/2018 6 SLX01121X00_VN SLX01121X00 VN 4/8/2018 10 SLX01121X00_VN SLX01121X00 VN 4/15/2018 7 SLX01121X00_VN SLX01121X00 VN 4/22/2018 6 SLX01121X00_VN SLX01121X00 VN 4/29/2018 11 SLX01121X00_VN SLX01121X00 VN 5/6/2018 16 SLX01121X00_VN SLX01121X00 VN 5/13/2018 16 SLX01121X00_VN SLX01121X00 VN 5/20/2018 6 SLX01121X00_VN SLX01121X00 VN 5/27/2018 NA SLX01121X00_VN SLX01121X00 VN 6/3/2018 NA SLX01121X00_VN SLX01121X00 VN 6/10/2018 NA SLX01121X00_VN SLX01121X00 VN 6/17/2018 NA SLX01121X00_VN SLX01121X00 VN 6/24/2018 NA SLX01121X00_VN" Data <- read.table(text=zz, header = TRUE) # 转换日期格式(匹配原数据的月/日/年格式) Data$Week_Start <- as.Date(Data$Week_Start, format = "%m/%d/%Y")
步骤2:生成需要追加的5个日期
找到现有数据的最后一个日期,然后生成后续5个间隔7天的日期:
# 获取现有数据的最后一个日期 last_date <- tail(Data$Week_Start, 1) # 生成后续5个每周的日期序列 new_dates <- seq(last_date + 7, by = "week", length.out = 5)
步骤3:构造要追加的DataFrame
其他列(parts、country_code、part_country)和现有数据保持一致,Qty设为NA留待填充预测值:
# 构造新行数据 new_rows <- data.frame( parts = rep(Data$parts[1], 5), # 重复现有数据的零件编号 country_code = rep(Data$country_code[1], 5), # 重复国家代码 Week_Start = new_dates, Qty = rep(NA, 5), part_country = rep(Data$part_country[1], 5), stringsAsFactors = FALSE # 避免自动转换为因子类型 )
步骤4:合并原数据和新行
用rbind()把新行追加到原DataFrame末尾:
# 合并得到更新后的DataFrame Data_updated <- rbind(Data, new_rows) # 可选:查看最后5行确认结果 tail(Data_updated, 5)
完成后,你就可以直接把时间序列预测值填入新增行的Qty列中了。
内容的提问来源于stack exchange,提问作者siddharth singh
相关产品推荐
相关产品推荐

