【发布时间】:2021-01-04 22:10:53
【问题描述】:
我有一个数据框(在 R 中),其中包含月份和年份的单独列。对于数据框中的每个组,我想获得该系列的最后 12 个月。如果数据缺少最近几个月的数据,我想用上一年的一个月替换。例如,假设我想获取 2020 年(1 月 - 12 月)的数据,但一组最近的数据是 9 月,那么我想从 2019 年 10 月到 12 月拉取数据。我只是不知道如何这样做。
这是一个例子。
a = expand.grid(1:2,2019,1:12)
b = expand.grid(1:2,2020,1:9)
dat = rbind(a,b)
names(dat) = c("group","year","month")
dat = dat[order(dat$group,dat$year,dat$month),]
所以数据看起来像这样:
group year month
1 1 2019 1
3 1 2019 2
5 1 2019 3
7 1 2019 4
9 1 2019 5
11 1 2019 6
【问题讨论】:
-
您的数据是否超过两年?如果是这样,当 2019 年和 2020 年都缺少数据时,您如何处理这种情况?你是从2018年先填2019年,然后用更新的2019年数据填2020年吗?还是您只回顾一年的原始数据(在这种情况下,2020 年将显示 2019 年和 2020 年缺失月份的 NA)?
-
我只需要回顾一年,因为每个月的数据都是完整的。我只是有数据没有进来的情况,所以我需要针对不同的组进行调整。
标签: r