colnames(i_r_v_c_cat) <-c("base", "reco", "view", "click", "base_cat", "reco_cat") Filter columns of interest i_r_v_c_cat <- i_r_v_c_cat[i_r_v_c_cat$base_cat %in% fil,] i_r_v_c_cat <- i_r_v_c_cat[i_r_v_c_cat$reco_cat %in% fil,] #Add a ctr columns i_r_v_c_cat$ctr <- round(i_r_v_c_cat$click*100/i_r_v_c_cat$view, 2) #filter out items whose ctr score is greater than 1 i_r_v_c_cat<- i_r_v_c_cat[i_r_v_c_cat$ctr<100.0, ] #Compute the base category, recommendation category ctr heat map cat_base_reco <-i_r_v_c_cat[, c("base_cat","reco_cat","view","click")] cat_base_reco<-aggregate(. ~base_cat+reco_cat, data=cat_base_reco, FUN=sum) cat_base_reco$ctr <- round(cat_base_reco$click*100/cat_base_reco$view,2) resultsMatrix <- matrix(0, length(fil), length(fil)) fil ->colnames(resultsMatrix) ->rownames(resultsMatrix) for (i in 1:100){ resultsMatrix[as.vector(cat_base_reco[["base_cat"]][i]), as.vector(cat_base_reco[["reco_cat"]][i])] <-as.vector(cat_base_reco[["ctr"]][i]) } write.table(resultsMatrix, file="../data/sigir2016short/output/category_heat_map.txt", sep="&") #Compute Base category ctr cat_base<-aggregate(. ~base_cat, data=cat_base_reco, FUN=sum) cat_base$ctr <- round(cat_base$click*100/cat_base$view,2) write.table(cat_base, file="../data/sigir2016short/output/category_ctr.txt", sep="&") #Compute base item recommendation item ctr i=250 top_base_reco <- merge(i_r_v_c_cat[order(-i_r_v_c_cat$view),][1:i,], i_r_v_c_cat[order(-i_r_v_c_cat$click),][1:i,], by =c("base","reco"), all=F) top_base_reco <- top_base_reco[, c("base","reco","view.x","click.x","base_cat.x","reco_cat.x","ctr.x")] write.table(top_base_reco, file="../data/sigir2016short/output/top_base_reco.txt", sep="&") i=4800 bot_base_reco <- merge(i_r_v_c_cat[order(-i_r_v_c_cat$view),][1:i,], i_r_v_c_cat[order(i_r_v_c_cat$click),][1:i,], by =c("base","reco"), all=F) bot_base_reco <- bot_base_reco[, c("base","reco","view.x","click.x","base_cat.x","reco_cat.x","ctr.x")] write.table(bot_base_reco, file="../data/sigir2016short/output/bot_base_reco.txt", sep="&") #Compute Base item ctr i=72 i_v_c_cat<-i_r_v_c_cat[, c("base", "base_cat","view","click"),] i_v_c_cat <-aggregate(. ~base+base_cat, data=i_v_c_cat, FUN=sum) i_v_c_cat$ctr<-round(i_v_c_cat$click*100/i_v_c_cat$view, 2) top_base <- merge(i_v_c_cat[order(-i_v_c_cat$view),][1:i,], i_v_c_cat[order(-i_v_c_cat$click),][1:i,], by =c("base","base_cat"), all=F) top_base <-top_base[, c("base","base_cat","view.x","click.x", "ctr.x")] write.table(top_base, file="../data/sigir2016short/output/top_base.txt", sep="&") #Bottom scoring political items i=600 i_v_c_cat <- i_v_c_cat[i_v_c_cat$base_cat=="politik", ] bot_base <- merge(i_v_c_cat[order(-i_v_c_cat$view),][1:i,], i_v_c_cat[order(i_v_c_cat$click),][1:i,], by =c("base","base_cat"), all=F) bot_base <-bot_base[, c("base","base_cat","view.x","click.x", "ctr.x")] write.table(bot_base, file="../data/sigir2016short/output/bot_base.txt", sep="&")