在 R 中创建两个向量的所有组合?
Create all combinations of two vectors in R?
我有一个数据框,其中价格根据日期、州和产品代码编入索引。
但是,部分数据缺失。我想要日期、州和产品代码的每种可能组合的数据点。
(顺便说一下,我的日期向量是一个从 200601 到 201212 的整数。)
我想这样做的方法是,对于每个缺失的价格,采用最近日期同一州同一 UPC 的价格。
假设 200803 状态 1 中的产品 A 的价格缺失。我想创建一个算法来查找 200804 状态 1 中产品 A 的价格,然后是 200802 的价格,然后是 200805 的价格,等等.等等,直到它找到一个价格。如果该州的该产品根本没有价格,我只想要 NA。
有人知道怎么做吗?我想有一个包可以做到这一点。谢谢。
我们可以用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)
我有一个数据框,其中价格根据日期、州和产品代码编入索引。
但是,部分数据缺失。我想要日期、州和产品代码的每种可能组合的数据点。
(顺便说一下,我的日期向量是一个从 200601 到 201212 的整数。)
我想这样做的方法是,对于每个缺失的价格,采用最近日期同一州同一 UPC 的价格。
假设 200803 状态 1 中的产品 A 的价格缺失。我想创建一个算法来查找 200804 状态 1 中产品 A 的价格,然后是 200802 的价格,然后是 200805 的价格,等等.等等,直到它找到一个价格。如果该州的该产品根本没有价格,我只想要 NA。
有人知道怎么做吗?我想有一个包可以做到这一点。谢谢。
我们可以用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)