dput () пример
structure(list(Data = structure(c(1L, 5L, 9L, 13L, 17L, 21L,
25L, 29L, 33L, 37L, 41L, 45L, 2L, 6L, 10L, 14L, 18L, 22L, 26L,
30L, 34L, 38L, 42L, 46L, 3L, 7L, 11L, 15L, 19L, 23L, 27L, 31L,
35L, 39L, 43L, 47L, 4L, 8L, 12L, 16L, 20L, 24L, 28L, 32L, 36L,
40L, 44L, 48L, 1L, 5L, 9L, 13L), .Label = c("01.01.2015", "01.01.2016",
"01.01.2017", "01.01.2018", "01.02.2015", "01.02.2016", "01.02.2017",
"01.02.2018", "01.03.2015", "01.03.2016", "01.03.2017", "01.03.2018",
"01.04.2015", "01.04.2016", "01.04.2017", "01.04.2018", "01.05.2015",
"01.05.2016", "01.05.2017", "01.05.2018", "01.06.2015", "01.06.2016",
"01.06.2017", "01.06.2018", "01.07.2015", "01.07.2016", "01.07.2017",
"01.07.2018", "01.08.2015", "01.08.2016", "01.08.2017", "01.08.2018",
"01.09.2015", "01.09.2016", "01.09.2017", "01.09.2018", "01.10.2015",
"01.10.2016", "01.10.2017", "01.10.2018", "01.11.2015", "01.11.2016",
"01.11.2017", "01.11.2018", "01.12.2015", "01.12.2016", "01.12.2017",
"01.12.2018"), class = "factor"), product_id = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L), .Label = c("w", "x"), class = "factor"), shop_code = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
1L, 1L, 1L), .Label = c("e", "y"), class = "factor"), Sales = c(318L,
345L, 503L, 264L, 266L, 265L, 231L, 333L, 376L, 232L, 197L, 952L,
375L, 252L, 267L, 176L, 181L, 236L, 208L, 185L, 196L, 201L, 207L,
275L, 116L, 125L, 242L, 136L, 193L, 219L, 183L, 219L, 194L, 204L,
191L, 251L, 4L, 9L, 9L, 3L, 7L, 11L, 8L, 5L, 5L, 5L, 11L, 7L,
318L, 345L, 503L, 264L)), .Names = c("Data", "product_id", "shop_code",
"Sales"), class = "data.frame", row.names = c(NA, -52L))
Мне нужны группы, для которых есть все наблюдения по месяцам, скопированные в отдельный фрейм данных.
Здесь у нас есть группа product_id + shop_code x+y
и 4 года 2015-2018 (48 месяцев они имеют значение).
Эти данные из этого набора данных должны быть скопированы в newtable
Также в этом наборе данных у нас есть группа product_id + shop_code w+e
Эта группа имеет только четыре наблюдения, и такие группы должны скопировать в incompletetable
Как это сделать?
Ожидаемый вывод новых таблиц
newtable=structure(list(Data = structure(c(1L, 5L, 9L, 13L, 17L, 21L,
25L, 29L, 33L, 37L, 41L, 45L, 2L, 6L, 10L, 14L, 18L, 22L, 26L,
30L, 34L, 38L, 42L, 46L, 3L, 7L, 11L, 15L, 19L, 23L, 27L, 31L,
35L, 39L, 43L, 47L, 4L, 8L, 12L, 16L, 20L, 24L, 28L, 32L, 36L,
40L, 44L, 48L), .Label = c("01.01.2015", "01.01.2016", "01.01.2017",
"01.01.2018", "01.02.2015", "01.02.2016", "01.02.2017", "01.02.2018",
"01.03.2015", "01.03.2016", "01.03.2017", "01.03.2018", "01.04.2015",
"01.04.2016", "01.04.2017", "01.04.2018", "01.05.2015", "01.05.2016",
"01.05.2017", "01.05.2018", "01.06.2015", "01.06.2016", "01.06.2017",
"01.06.2018", "01.07.2015", "01.07.2016", "01.07.2017", "01.07.2018",
"01.08.2015", "01.08.2016", "01.08.2017", "01.08.2018", "01.09.2015",
"01.09.2016", "01.09.2017", "01.09.2018", "01.10.2015", "01.10.2016",
"01.10.2017", "01.10.2018", "01.11.2015", "01.11.2016", "01.11.2017",
"01.11.2018", "01.12.2015", "01.12.2016", "01.12.2017", "01.12.2018"
), class = "factor"), product_id = structure(c(1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "x", class = "factor"),
shop_code = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "y", class = "factor"),
Sales = c(318L, 345L, 503L, 264L, 266L, 265L, 231L, 333L,
376L, 232L, 197L, 952L, 375L, 252L, 267L, 176L, 181L, 236L,
208L, 185L, 196L, 201L, 207L, 275L, 116L, 125L, 242L, 136L,
193L, 219L, 183L, 219L, 194L, 204L, 191L, 251L, 4L, 9L, 9L,
3L, 7L, 11L, 8L, 5L, 5L, 5L, 11L, 7L)), .Names = c("Data",
"product_id", "shop_code", "Sales"), class = "data.frame", row.names = c(NA,
-48L))
ожидаемый результат
incompletetable=structure(list(Data = structure(1:4, .Label = c("01.01.2015",
"01.02.2015", "01.03.2015", "01.04.2015"), class = "factor"),
product_id = structure(c(1L, 1L, 1L, 1L), .Label = "w", class = "factor"),
shop_code = structure(c(1L, 1L, 1L, 1L), .Label = "e", class = "factor"),
Sales = c(318L, 345L, 503L, 264L)), .Names = c("Data", "product_id",
"shop_code", "Sales"), class = "data.frame", row.names = c(NA,
-4L))