在R中创建两个向量的所有组合?

时间:2016-02-10 02:35:57

标签: r missing-data panel-data

我有一个数据框,其价格根据日期,状态和产品代码编制索引。

但是,有些数据丢失了。我想要一个数据点,用于日期,状态和产品代码的每种可能组合。

(顺便说一句,我的日期向量是从200601到201212的整数。)

我想这样做的方法是,对于每个缺失的价格,在最近的日期取同一州的同一UPC的价格。

让我们说200803状态1中产品A的价格缺失。我想创建一个算法,查找状态1中产品A的价格为200804,然后是200802,然后是200805等等,直到找到价格。如果该产品中没有价格,我只想要一个NA。

有谁知道怎么做?我想有一个包可以做到这一点。感谢。

1 个答案:

答案 0 :(得分:1)

我们可以使用expand.grid获取三列中unique值的所有组合。然后,使用mergeall.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)