Tal y como hemos visto en el Anexo 1: Pretratamiento de los datos, al seleccionar los productos concretos que queríamos incluir en el conjunto de datos vimos que había gran cantidad de registros faltantes en algunos meses. Es por esto que procederemos a su imputación. Lo que haremos será, para los meses en los que no hay registro de un determinado producto, tomar como dato el registro de ese mismo producto en el mes anterior.
imputar = read.csv('/home/silvia/000UNI/VIS/datos2/01datos_cesta_carrefour.csv')
imputar$month2 = as.Date(paste('15-',imputar$month), format = '%d-%m-%Y')
x = imputar$month2[!duplicated(imputar$month2)]
productos = imputar$name[!duplicated(imputar$name)]
date = min(x)
date_string = str_replace(paste(substr(date, start = 6, stop = 7), substr(date, start = 1, stop = 4)), ' ', '-')
d = data.frame()
lista_date = c()
while (date < '2022-12-15') {
lista_date = c(lista_date, str_replace(paste(substr(date, start = 6, stop = 7), substr(date, start = 1, stop = 4)), ' ', '-'))
date = date + 30
}
for (prod in productos) {
i = 1
if (nrow(imputar[(imputar$name == prod & imputar$month == lista_date[1]),])>0) {
d = rbind(d, imputar[(imputar$name == prod & imputar$month == lista_date[1]),])
}
else {
X = NA
name = prod
month = lista_date[1]
supermarket = imputar[imputar$name == prod,][1,]$supermarket
category = imputar[imputar$name == prod,][1,]$category
reference_unit = imputar[imputar$name == prod,][1,]$reference_unit
mean_price = NA
mean_ref_price = NA
cesta_carrefour = imputar[imputar$name == prod,][1,]$cesta_carrefour
alternative_category = imputar[imputar$name == prod,][1,]$alternative_category
month2 = imputar[imputar$name == prod,][1,]$month2
x = data.frame(X, month, name, supermarket, category, reference_unit, mean_price, mean_ref_price, cesta_carrefour, alternative_category, month2)
d = rbind(d, x)
}
for (fecha in lista_date[2:length(lista_date)]) {
anterior = lista_date[i]
if (nrow(imputar[(imputar$name == prod & imputar$month == fecha),]) > 0) {
d = rbind(d, imputar[(imputar$name == prod & imputar$month == fecha),])
}
else {
imp = d[(d$name == prod & d$month == anterior),]
imp$month = fecha
d = rbind(d, imp)
}
i = i+1
}
}
Una vez hecho esto, contamos ya con nuestro dataset final, que tiene un total de 3.243 observaciones y 9 variables.