我有一个数据框,其价格根据日期,状态和产品代码编制索引。
但是,有些数据丢失了。我想要一个数据点,用于日期,状态和产品代码的每种可能组合。
(顺便说一句,我的日期向量是从200601到201212的整数。)
我想这样做的方法是,对于每个缺失的价格,在最近的日期取同一州的同一UPC的价格。
让我们说200803状态1中产品A的价格缺失。我想创建一个算法,查找状态1中产品A的价格为200804,然后是200802,然后是200805等等,直到找到价格。如果该产品中没有价格,我只想要一个NA。
有谁知道怎么做?我想有一个包可以做到这一点。感谢。
答案 0 :(得分:1)
我们可以使用expand.grid
获取三列中unique
值的所有组合。然后,使用merge
和all.x=TRUE
合并初始数据集。
df2 <- expand.grid(lapply(df1[c('Date', 'State',
'Product Code')], unique))
merge(df2, df1, by = c('Date', 'State', 'Product Code'),
all.x=TRUE)