library(data.table)

train = fread("../input/train.csv")
test = fread("../input/test.csv")

setkey(train, store_nbr, item_nbr)
setkey(test, store_nbr, item_nbr)

# Calculating the mean from historical sales for each item_nbr x stroe_nbr
tmp_train = train[, .(mean_sales=mean(unit_sales)), by=list(item_nbr, store_nbr)]

# Merging with the test
tmp_test = merge(test, tmp_train[,.(item_nbr, store_nbr, mean_sales)], all.x=TRUE)

tmp_test[is.na(mean_sales) | mean_sales<0, mean_sales:=0]

setnames(tmp_test, "mean_sales", "unit_sales")
write.table(tmp_test[,.(id, unit_sales)], "submission.csv", quote=FALSE, sep=",", row.names=FALSE)

