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

Create all combinations of two vectors in R?

我有一个数据框,其中价格根据日期、州和产品代码编入索引。

但是,部分数据缺失。我想要日期、州和产品代码的每种可能组合的数据点。

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

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

假设 200803 状态 1 中的产品 A 的价格缺失。我想创建一个算法来查找 200804 状态 1 中产品 A 的价格,然后是 200802 的价格,然后是 200805 的价格,等等.等等,直到它找到一个价格。如果该州的该产品根本没有价格,我只想要 NA。

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

我们可以用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)