大佬教程收集整理的这篇文章主要介绍了如何将时间序列数据填充到数据框中?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在处理以下时间序列数据:
Weeks <- c("1995-01","1995-02","1995-03","1995-04","1995-06","1995-08","1995-10","1995-15","1995-16","1995-24","1995-32")
Country <- c("United States")
Values <- sample(seq(1,500,1),length(Weeks),replace = T)
df <- data.frame(Weeks,Country,Values)
Weeks Country Values
1 1995-01 United States 193
2 1995-02 United States 183
3 1995-03 United States 402
4 1995-04 United States 75
5 1995-06 United States 402
6 1995-08 United States 436
7 1995-10 United States 97
8 1995-15 United States 445
9 1995-16 United States 336
10 1995-24 United States 31
11 1995-32 United States 413
根据年份和当年的周数(第 1 列)进行结构化。请注意,有些周是如何被省略的(作为聚合函数的结果)。例如,不包括 1995-05。如何将省略的行包含到数据中,添加适当的国家/地区名称,并为其分配值 = 0?
感谢您的帮助!
separate
不同列中的年和周值。对于每个 Country
和 Years
,我们complete
缺少的周和 assign
Values
为 0。最后 unite
年和周列以获取数据与原始格式相同。
library(dplyr)
library(tidyr)
df %>%
separate(Weeks,c('Years','Weeks'),sep = '-',convert = TRUE) %>%
group_by(Country,Years) %>%
complete(Weeks = min(Weeks):max(Weeks),fill = list(Values = 0)) %>%
ungroup() %>%
mutate(Weeks = sprintf('%02d',Weeks)) %>%
unite(Weeks,Years,Weeks,sep = '-')
# Country Weeks Values
# <chr> <chr> <dbl>
# 1 United States 1995-01 354
# 2 United States 1995-02 395
# 3 United States 1995-03 408
# 4 United States 1995-04 143
# 5 United States 1995-05 0
# 6 United States 1995-06 481
# 7 United States 1995-07 0
# 8 United States 1995-08 49
# 9 United States 1995-09 0
#10 United States 1995-10 229
# … with 22 more rows
以上是大佬教程为你收集整理的如何将时间序列数据填充到数据框中?全部内容,希望文章能够帮你解决如何将时间序列数据填充到数据框中?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。