У меня есть данные как ниже:
ex <- structure(list(data = structure(c(16983, 16983, 16983, 16983,
16983, 16983, 16983, 16983, 16983, 16983, 16983, 16983, 16983,
16983, 16983, 16983, 16983, 16983, 16983, 16984, 16984, 16984,
16984, 16984, 16984, 16985, 16985, 16985, 16985, 16985, 16985,
16986, 16986, 16986, 16986, 16986, 16986, 16987, 16987, 16987,
16987, 16988, 16988, 16988, 16988, 16988, 16989, 16989, 16989,
16989), class = "Date"), media = c("Newspapers", "Newspapers",
"Newspapers", "Newspapers", "Magazines", "Magazines", "Magazines",
"Outdoor", "Outdoor", "Outdoor", "Outdoor", "Outdoor", "Outdoor",
"Radio", "Radio", "Radio", "Radio", "Radio", "Radio", "Radio",
"Radio", "Radio", "Radio", "Radio", "Radio", "Radio", "Radio",
"Radio", "Radio", "Radio", "Radio", "Newspapers", "Magazines",
"Radio", "Radio", "Radio", "Radio", "Radio", "Radio", "Radio",
"Radio", "Radio", "Radio", "Radio", "Radio", "Radio", "Newspapers",
"Newspapers", "Magazines", "Radio"), brand_short = c("Brand A",
"Brand B", "Brand C", "Brand D", "Brand E", "Brand C", "Brand D",
"Brand A", "Brand E", "Brand B", "Brand F", "Brand C", "Brand D",
"Brand A", "Brand E", "Brand B", "Brand F", "Brand C", "Brand D",
"Brand A", "Brand E", "Brand B", "Brand F", "Brand C", "Brand D",
"Brand A", "Brand E", "Brand B", "Brand F", "Brand C", "Brand D",
"Brand C", "Brand E", "Brand A", "Brand E", "Brand F", "Brand C",
"Brand A", "Brand E", "Brand F", "Brand C", "Brand A", "Brand E",
"Brand B", "Brand F", "Brand C", "Brand A", "Brand C", "Brand A",
"Brand A"), label = c("ntv0_Newspapers_Brand A", "ntv0_Newspapers_Brand B",
"ntv0_Newspapers_Brand C", "ntv0_Newspapers_Brand D", "ntv0_Magazines_Brand E",
"ntv0_Magazines_Brand C", "ntv0_Magazines_Brand D", "ntv0_Outdoor_Brand A",
"ntv0_Outdoor_Brand E", "ntv0_Outdoor_Brand B", "ntv0_Outdoor_Brand F",
"ntv0_Outdoor_Brand C", "ntv0_Outdoor_Brand D", "ntv0_Radio_Brand A",
"ntv0_Radio_Brand E", "ntv0_Radio_Brand B", "ntv0_Radio_Brand F",
"ntv0_Radio_Brand C", "ntv0_Radio_Brand D", "ntv0_Radio_Brand A",
"ntv0_Radio_Brand E", "ntv0_Radio_Brand B", "ntv0_Radio_Brand F",
"ntv0_Radio_Brand C", "ntv0_Radio_Brand D", "ntv0_Radio_Brand A",
"ntv0_Radio_Brand E", "ntv0_Radio_Brand B", "ntv0_Radio_Brand F",
"ntv0_Radio_Brand C", "ntv0_Radio_Brand D", "ntv0_Newspapers_Brand C",
"ntv0_Magazines_Brand E", "ntv0_Radio_Brand A", "ntv0_Radio_Brand E",
"ntv0_Radio_Brand F", "ntv0_Radio_Brand C", "ntv0_Radio_Brand A",
"ntv0_Radio_Brand E", "ntv0_Radio_Brand F", "ntv0_Radio_Brand C",
"ntv0_Radio_Brand A", "ntv0_Radio_Brand E", "ntv0_Radio_Brand B",
"ntv0_Radio_Brand F", "ntv0_Radio_Brand C", "ntv0_Newspapers_Brand A",
"ntv0_Newspapers_Brand C", "ntv0_Magazines_Brand A", "ntv0_Radio_Brand A"
), var1 = c(2, 3, 2, 1, 6, 1, 2, 0, 0, 0, 0, 0, 0, 451, 6, 468,
921, 800, 258, 36, 14, 546, 1316, 749, 264, 36, 15, 608, 918,
1097, 265, 1, 1, 25, 4, 3, 1129, 25, 4, 3, 981, 46, 5, 552, 4,
989, 1, 1, 1, 65), var2 = c(9240, 41030, 146280, 45000, 792500,
151900, 115483, 302125, 4034, 555326, 2661, 5806, 48268, 473789,
60340, 237996, 484655, 415685, 338373, 6185, 39760, 149848, 315474,
210416, 159881, 5577, 24150, 100646, 174513, 317148, 106100,
98280, 164450, 3730, 17990, 160, 941389, 3726, 18060, 152, 765857,
14152, 34790, 354024, 862, 872216, 6240, 16450, 1870, 20458)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -50L))
Я хочу иметь строки для всех комбинаций data
, media
и brand_short
, заполняя var1
и var2
с помощью0
если в данных отсутствовала комбинация.Я также хотел бы сохранить переменную label
, которая, как вы можете заметить, создается с использованием media
и brand_short
.Я знаю, что функция tidyr::complete
разработана специально для этого, но у меня проблемы с соответствующим вызовом.Тот, который я пробовал:
ex %>% complete(data, nesting(media, brand_short, label), fill = list(var1 = 0, var2 = 0))
не производит для всех брендов и не создает дополнительных нежелательных ярлыков:
ex %>% complete(data, media, nesting(brand_short, label), fill = list(var1 = 0, var2 = 0))
Как я могу сделать свой фрейм данных для любого конкретногодатировать все комбинации media
и brand_short
(т.е. 24 строки для каждой даты), но не объединять с label
?