我的原始数据集有多个产品 ID、月销售额和以矩阵格式排列的相应日期。我希望为每个 product_id 以及销售价值和日期创建单独的数据框。为此,我使用了一个 for 循环。
base 是基础数据集。x 是包含唯一 product_id 和相应观察点数的变量。
for(i in 1:nrow(x)){
n <- paste("df", x$vars[i], sep = "")
assign(n, base[base[,1] == x$vars[i],])
print(n)}
这是输出的一部分:
[1] "df25"
[1] "df28"
[1] "df35"
[1] "df37"
[1] "df39"
所以所有的数据框名称都保存在 n 中。我认为这是一个字符串向量。
当我在循环外写 df25 时,我得到了我想要的数据框:
> df25
# A tibble: 49 x 3
ID date Sales
<dbl> <date> <dbl>
1 25 2014-01-01 0
2 25 2014-02-01 0
3 25 2014-03-01 0
4 25 2014-04-01 0
5 25 2014-05-01 0
6 25 2014-06-01 0
7 25 2014-07-01 0
8 25 2014-08-01 0
9 25 2014-09-01 0
10 25 2014-10-01 0
# ... with 39 more rows
现在,我想分别使用这些数据帧中的每一个来执行预测分析。为此,我需要获取各个数据框中的值。这就是我尝试过的相同:
for(i in 1:4) {print(paste0("df", x$vars[i]))}
[1] "df2"
[1] "df3"
[1] "df5"
[1] "df14"
但我无法引用单个数据框。我正在寻求有关如何访问数据框及其值以进行进一步分析的帮助?由于有 200 多个产品,我正在寻找一些处理所有数据帧的功能。
首先,我希望将其转换为变量中的 a TS
、 usingyear
和month
值date
,然后使用ets
orforecast,
等。
样本数据集:
set.seed(354)
df <- data.frame(Product_Id = rep(1:10, each = 50),
Date = seq(from = as.Date("2010/1/1"), to = as.Date("2014/2/1") , by = "month"),
Sales = rnorm(100, mean = 50, sd= 20))
df <- df[-c(251:256, 301:312) ,]
与往常一样,任何建议都将受到高度赞赏。