Мой необработанный набор данных имеет несколько идентификаторов продуктов, месячные продажи и соответствующую дату, упорядоченные в матричном формате.Я хочу создать отдельные кадры данных для каждого 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 продуктов, я ищу некоторую функцию, которая обрабатывает все кадры данных.
Сначала я хочу преобразовать ее в TS
, используя значения year
и month
изпеременную date
и затем используйте ets
или forecast,
и т. д.
ОБРАЗЕЦ ДАННЫХ:
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) ,]
Как всегда, любое предложение будет высоко оценено.