Building a recomendation system using simple correlation between custoemer patterns

##Convert int column num to keep it consistent with other num columns
movie_user_frame$`442` <- as.numeric(movie_user_frame$`442`)
##Remove movie title column to ensure correlation works on user ratings
movie_user_frame_users <- movie_user_frame[c(-1)]
##Run correlation to ignore NA valules
movie_user_frame_corr <- cor(movie_user_frame_users, use = "pairwise.complete.obs")
##Extract column with correlations of user X for whom recommendations need to be generated - ex. user 3712
x3712_corr <- as.data.frame(movie_user_frame_corr[,7, drop = FALSE])
colnames(x3712_corr) <- "x3712"
x3712_corr
##Sort correlations for user X in descending order to identify top 5 neighbors
x3712_corr_sort <- x3712_corr[order(-x3712_corr$x3712),,drop = FALSE]
##Clean up source frame by replacing NA with 0
movie_user_frame_clean <- movie_user_frame_users
movie_user_frame_clean[is.na(movie_user_frame_clean)] <- 0
movie_user_frame_clean
##Compute nums
x2824_num = movie_user_frame_clean$`2824` * x3712_corr_sort[2,1]
x3867_num = movie_user_frame_clean$`3867` * x3712_corr_sort[3,1]
x5062_num = movie_user_frame_clean$`5062` * x3712_corr_sort[4,1]
x442_num = movie_user_frame_clean$`442` * x3712_corr_sort[5,1]
x3853_num = movie_user_frame_clean$`3853` * x3712_corr_sort[6,1]
##Combine into num data frame
nn_x3712 <- cbind(x2824_num, x3867_num, x5062_num, x442_num, x3853_num)
nn_x3712
         x2824_num    x3867_num    x5062_num     x442_num    x3853_num
  [1,] 2.083095224 1.6010980170 0.9907730892 0.6813895948 0.0000000000
  [2,] 0.000000000 1.6010980170 0.9907730892 0.0000000000 0.0000000000
  [3,] 2.314550249 1.8012352691 1.1146197253 0.6813895948 0.6778086064
  [4,] 0.000000000 0.0000000000 1.1146197253 0.9085194597 0.0000000000
  [5,] 2.083095224 1.6010980170 0.9907730892 0.2271298649 0.0000000000
  [6,] 1.851640200 1.2008235128 0.9907730892 1.1356493247 0.9682980092
  [7,] 0.000000000 0.0000000000 0.9907730892 0.6813895948 0.9682980092
  [8,] 0.000000000 0.0000000000 0.0000000000 0.4542597299 0.7746384073
  [9,] 2.314550249 0.0000000000 0.9907730892 0.9085194597 0.8714682083
 [10,] 0.000000000 1.8012352691 0.9907730892 1.1356493247 0.7746384073
 [11,] 2.314550249 1.6010980170 0.9907730892 0.9085194597 0.5809788055
 [12,] 0.000000000 0.0000000000 1.1146197253 1.1356493247 0.0000000000
 [13,] 2.314550249 0.0000000000 0.9907730892 0.0000000000 0.0000000000
 [14,] 0.000000000 1.6010980170 0.0000000000 0.0000000000 0.0000000000
 [15,] 1.851640200 2.0013725213 1.1146197253 1.1356493247 0.9682980092
 [16,] 1.851640200 2.0013725213 1.1146197253 1.1356493247 0.9682980092
 [17,] 1.851640200 2.0013725213 1.2384663615 1.1356493247 0.7746384073
 [18,] 0.000000000 0.0000000000 0.9907730892 0.0000000000 0.0000000000
 [19,] 0.000000000 0.0000000000 1.1146197253 0.6813895948 0.7746384073
 [20,] 0.000000000 0.0000000000 0.8669264530 0.0000000000 0.0000000000
 [21,] 0.000000000 0.0000000000 1.1146197253 0.6813895948 0.8714682083
 [22,] 2.314550249 2.0013725213 1.1146197253 0.6813895948 0.9682980092
 [23,] 0.000000000 1.6010980170 1.1146197253 0.0000000000 0.6778086064
 [24,] 2.083095224 1.4009607649 0.9907730892 1.1356493247 0.6778086064
 [25,] 0.000000000 0.0000000000 0.9907730892 0.6813895948 0.0000000000
 [26,] 0.000000000 0.0000000000 0.9907730892 0.9085194597 0.8714682083
 [27,] 0.000000000 0.0000000000 0.0000000000 0.9085194597 0.4841490046
 [28,] 0.000000000 1.2008235128 0.0000000000 0.9085194597 0.9682980092
 [29,] 0.000000000 0.0000000000 0.8669264530 0.0000000000 0.0000000000
 [30,] 0.000000000 1.0006862606 0.0000000000 0.6813895948 0.0000000000
 [31,] 1.851640200 1.6010980170 0.0000000000 0.6813895948 0.7746384073
 [32,] 0.000000000 0.0000000000 0.0000000000 0.9085194597 0.7746384073
 [33,] 0.000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [34,] 2.314550249 1.2008235128 1.1146197253 0.0000000000 0.7746384073
 [35,] 0.000000000 1.4009607649 0.8669264530 0.9085194597 0.5809788055
 [36,] 0.000000000 1.4009607649 0.9907730892 0.9085194597 0.3873192037
 [37,] 1.851640200 1.2008235128 0.8669264530 1.1356493247 0.9682980092
 [38,] 0.000000000 1.0006862606 0.0000000000 0.6813895948 0.0000000000
 [39,] 0.000000000 0.0000000000 0.0000000000 0.9085194597 0.8714682083
 [40,] 1.851640200 1.2008235128 1.1146197253 0.9085194597 0.6778086064
 [41,] 0.000000000 1.4009607649 0.0000000000 0.0000000000 0.0000000000
 [42,] 1.620185175 1.8012352691 1.2384663615 0.9085194597 0.0000000000
 [43,] 0.000000000 1.6010980170 0.0000000000 0.6813895948 0.0000000000
 [44,] 0.000000000 1.6010980170 0.8669264530 0.4542597299 0.0000000000
 [45,] 0.000000000 0.0000000000 0.8669264530 0.9085194597 0.0000000000
 [46,] 0.000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [47,] 0.000000000 1.4009607649 0.9907730892 0.0000000000 0.0000000000
 [48,] 0.000000000 0.8005490085 0.8669264530 0.9085194597 0.0000000000
 [49,] 0.000000000 1.2008235128 0.8669264530 0.0000000000 0.0000000000
 [50,] 0.000000000 1.2008235128 0.8669264530 0.9085194597 0.3873192037
 [51,] 2.314550249 2.0013725213 1.1146197253 1.1356493247 0.8714682083
 [52,] 2.314550249 1.0006862606 0.7430798169 1.1356493247 0.2904894028
 [53,] 1.388730150 1.6010980170 0.8669264530 0.4542597299 0.8714682083
 [54,] 0.000000000 0.0000000000 0.8669264530 0.0000000000 0.9682980092
 [55,] 1.388730150 1.6010980170 0.9907730892 0.0000000000 0.0000000000
 [56,] 0.000000000 0.0000000000 0.0000000000 1.1356493247 0.0000000000
 [57,] 0.000000000 0.0000000000 0.8669264530 0.0000000000 0.0000000000
 [58,] 1.851640200 1.6010980170 0.4953865446 0.9085194597 0.0000000000
 [59,] 1.388730150 1.8012352691 0.4953865446 0.6813895948 0.0000000000
 [60,] 1.388730150 2.0013725213 1.1146197253 1.1356493247 0.7746384073
 [61,] 0.000000000 1.6010980170 0.0000000000 0.9085194597 0.5809788055
 [62,] 1.851640200 2.0013725213 0.0000000000 0.6813895948 0.6778086064
 [63,] 0.000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [64,] 0.000000000 1.0006862606 0.8669264530 0.0000000000 0.2904894028
 [65,] 1.851640200 0.0000000000 0.0000000000 0.6813895948 0.7746384073
 [66,] 1.388730150 2.0013725213 0.8669264530 0.6813895948 0.7746384073
 [67,] 1.851640200 1.4009607649 0.0000000000 0.6813895948 0.0000000000
 [68,] 1.157275125 1.2008235128 0.8669264530 0.0000000000 0.0000000000
 [69,] 0.000000000 1.4009607649 0.9907730892 0.2271298649 0.6778086064
 [70,] 0.000000000 1.4009607649 0.0000000000 0.4542597299 0.5809788055
 [71,] 0.000000000 1.2008235128 0.8669264530 0.0000000000 0.0000000000
 [72,] 0.000000000 0.0000000000 0.9907730892 0.9085194597 0.3873192037
 [73,] 0.000000000 0.0000000000 0.8669264530 0.9085194597 0.4841490046
 [74,] 1.620185175 1.2008235128 0.0000000000 0.9085194597 0.0000000000
 [75,] 0.000000000 2.0013725213 0.9907730892 0.9085194597 0.0000000000
 [76,] 0.000000000 1.4009607649 0.9907730892 0.0000000000 0.0000000000
 [77,] 0.000000000 0.8005490085 0.8669264530 0.0000000000 0.0000000000
 [78,] 1.851640200 1.8012352691 1.1146197253 0.6813895948 0.0000000000
 [79,] 2.083095224 1.6010980170 1.1146197253 0.6813895948 0.0000000000
 [80,] 1.851640200 1.4009607649 0.7430798169 0.6813895948 0.0000000000
 [81,] 0.000000000 0.0000000000 0.0000000000 0.6813895948 0.8714682083
 [82,] 0.000000000 0.0000000000 0.0000000000 0.6813895948 0.0000000000
 [83,] 0.000000000 0.0000000000 0.0000000000 1.1356493247 0.5809788055
 [84,] 0.000000000 1.4009607649 0.9907730892 1.1356493247 0.0000000000
 [85,] 0.000000000 1.6010980170 0.9907730892 1.1356493247 0.0000000000
 [86,] 0.000000000 1.0006862606 0.0000000000 0.2271298649 0.0000000000
 [87,] 0.000000000 1.2008235128 0.8669264530 0.0000000000 0.0000000000
 [88,] 0.000000000 0.0000000000 0.0000000000 0.0000000000 0.3873192037
 [89,] 0.000000000 0.0000000000 0.8669264530 0.6813895948 0.0000000000
 [90,] 0.000000000 0.0000000000 0.0000000000 0.6813895948 0.0000000000
 [91,] 0.000000000 0.4002745043 0.9907730892 0.0000000000 0.0000000000
 [92,] 1.620185175 1.6010980170 0.0000000000 0.6813895948 0.0000000000
 [93,] 0.000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [94,] 0.000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
 [95,] 0.000000000 0.0000000000 0.0000000000 0.4542597299 0.0000000000
 [96,] 0.000000000 1.2008235128 0.8669264530 0.0000000000 0.0000000000
 [97,] 0.000000000 1.6010980170 0.4953865446 0.0000000000 0.0000000000
 [98,] 0.000000000 1.6010980170 0.9907730892 0.9085194597 0.5809788055
 [99,] 0.000000000 1.4009607649 0.0000000000 0.9085194597 0.0000000000
[100,] 0.000000000 1.2008235128 0.0000000000 0.0000000000 0.0000000000
##Sum rows to form num
sum_num <- rowSums(nn_x3712)
movie_user_frame_clean1 <- movie_user_frame_clean
movie_user_frame_clean1 [movie_user_frame_clean1 > 0] <- 1
movie_user_frame_clean1
movie_user_select <- data.frame(movie_user_frame_clean1$`2824`, movie_user_frame_clean1$`3867`, movie_user_frame_clean1$`5062`, movie_user_frame_clean1$`442`, movie_user_frame_clean1$`3853`)
##Transpose
movie_user_select_t <- t(movie_user_select)
movie_user_select_t
                               [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
movie_user_frame_clean1..2824.    1    0    1    0    1    1    0    0    1     0     1
movie_user_frame_clean1..3867.    1    1    1    0    1    1    0    0    0     1     1
movie_user_frame_clean1..5062.    1    1    1    1    1    1    1    0    1     1     1
movie_user_frame_clean1..442.     1    0    1    1    1    1    1    1    1     1     1
movie_user_frame_clean1..3853.    0    0    1    0    0    1    1    1    1     1     1
                               [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20] [,21]
movie_user_frame_clean1..2824.     0     1     0     1     1     1     0     0     0     0
movie_user_frame_clean1..3867.     0     0     1     1     1     1     0     0     0     0
movie_user_frame_clean1..5062.     1     1     0     1     1     1     1     1     1     1
movie_user_frame_clean1..442.      1     0     0     1     1     1     0     1     0     1
movie_user_frame_clean1..3853.     0     0     0     1     1     1     0     1     0     1
                               [,22] [,23] [,24] [,25] [,26] [,27] [,28] [,29] [,30] [,31]
movie_user_frame_clean1..2824.     1     0     1     0     0     0     0     0     0     1
movie_user_frame_clean1..3867.     1     1     1     0     0     0     1     0     1     1
movie_user_frame_clean1..5062.     1     1     1     1     1     0     0     1     0     0
movie_user_frame_clean1..442.      1     0     1     1     1     1     1     0     1     1
movie_user_frame_clean1..3853.     1     1     1     0     1     1     1     0     0     1
                               [,32] [,33] [,34] [,35] [,36] [,37] [,38] [,39] [,40] [,41]
movie_user_frame_clean1..2824.     0     0     1     0     0     1     0     0     1     0
movie_user_frame_clean1..3867.     0     0     1     1     1     1     1     0     1     1
movie_user_frame_clean1..5062.     0     0     1     1     1     1     0     0     1     0
movie_user_frame_clean1..442.      1     0     0     1     1     1     1     1     1     0
movie_user_frame_clean1..3853.     1     0     1     1     1     1     0     1     1     0
                               [,42] [,43] [,44] [,45] [,46] [,47] [,48] [,49] [,50] [,51]
movie_user_frame_clean1..2824.     1     0     0     0     0     0     0     0     0     1
movie_user_frame_clean1..3867.     1     1     1     0     0     1     1     1     1     1
movie_user_frame_clean1..5062.     1     0     1     1     0     1     1     1     1     1
movie_user_frame_clean1..442.      1     1     1     1     0     0     1     0     1     1
movie_user_frame_clean1..3853.     0     0     0     0     0     0     0     0     1     1
                               [,52] [,53] [,54] [,55] [,56] [,57] [,58] [,59] [,60] [,61]
movie_user_frame_clean1..2824.     1     1     0     1     0     0     1     1     1     0
movie_user_frame_clean1..3867.     1     1     0     1     0     0     1     1     1     1
movie_user_frame_clean1..5062.     1     1     1     1     0     1     1     1     1     0
movie_user_frame_clean1..442.      1     1     0     0     1     0     1     1     1     1
movie_user_frame_clean1..3853.     1     1     1     0     0     0     0     0     1     1
                               [,62] [,63] [,64] [,65] [,66] [,67] [,68] [,69] [,70] [,71]
movie_user_frame_clean1..2824.     1     0     0     1     1     1     1     0     0     0
movie_user_frame_clean1..3867.     1     0     1     0     1     1     1     1     1     1
movie_user_frame_clean1..5062.     0     0     1     0     1     0     1     1     0     1
movie_user_frame_clean1..442.      1     0     0     1     1     1     0     1     1     0
movie_user_frame_clean1..3853.     1     0     1     1     1     0     0     1     1     0
                               [,72] [,73] [,74] [,75] [,76] [,77] [,78] [,79] [,80] [,81]
movie_user_frame_clean1..2824.     0     0     1     0     0     0     1     1     1     0
movie_user_frame_clean1..3867.     0     0     1     1     1     1     1     1     1     0
movie_user_frame_clean1..5062.     1     1     0     1     1     1     1     1     1     0
movie_user_frame_clean1..442.      1     1     1     1     0     0     1     1     1     1
movie_user_frame_clean1..3853.     1     1     0     0     0     0     0     0     0     1
                               [,82] [,83] [,84] [,85] [,86] [,87] [,88] [,89] [,90] [,91]
movie_user_frame_clean1..2824.     0     0     0     0     0     0     0     0     0     0
movie_user_frame_clean1..3867.     0     0     1     1     1     1     0     0     0     1
movie_user_frame_clean1..5062.     0     0     1     1     0     1     0     1     0     1
movie_user_frame_clean1..442.      1     1     1     1     1     0     0     1     1     0
movie_user_frame_clean1..3853.     0     1     0     0     0     0     1     0     0     0
                               [,92] [,93] [,94] [,95] [,96] [,97] [,98] [,99] [,100]
movie_user_frame_clean1..2824.     1     0     0     0     0     0     0     0      0
movie_user_frame_clean1..3867.     1     0     0     0     1     1     1     1      1
movie_user_frame_clean1..5062.     0     0     0     0     1     1     1     0      0
movie_user_frame_clean1..442.      1     0     0     1     0     0     1     1      0
movie_user_frame_clean1..3853.     0     0     0     0     0     0     1     0      0
x3712_select <- x3712_corr_sort[2:6,]
x3712_select_t <- as.data.frame(x3712_select)
##Create denom frame
dd_num <- x3712_select_t$x3712_select * movie_user_select_t
dd_num
                                       [,1]         [,2]         [,3]         [,4]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.4629100499 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.0000000000
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.2271298649 0.0000000000 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.1936596018 0.0000000000
                                       [,5]         [,6]         [,7]         [,8]
movie_user_frame_clean1..2824. 0.4629100499 0.4629100499 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.0000000000 0.0000000000
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.0000000000
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.1936596018 0.1936596018 0.1936596018
                                       [,9]        [,10]        [,11]        [,12]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.4629100499 0.0000000000
movie_user_frame_clean1..3867. 0.0000000000 0.4002745043 0.4002745043 0.0000000000
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.1936596018 0.1936596018 0.1936596018 0.0000000000
                                      [,13]        [,14]        [,15]        [,16]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.4629100499 0.4629100499
movie_user_frame_clean1..3867. 0.0000000000 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.0000000000 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.0000000000 0.0000000000 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.1936596018 0.1936596018
                                      [,17]        [,18]        [,19]        [,20]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.2271298649 0.0000000000 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.1936596018 0.0000000000 0.1936596018 0.0000000000
                                      [,21]        [,22]        [,23]        [,24]
movie_user_frame_clean1..2824. 0.0000000000 0.4629100499 0.0000000000 0.4629100499
movie_user_frame_clean1..3867. 0.0000000000 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.0000000000 0.2271298649
movie_user_frame_clean1..3853. 0.1936596018 0.1936596018 0.1936596018 0.1936596018
                                      [,25]        [,26]        [,27]        [,28]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.0000000000 0.0000000000 0.0000000000 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.0000000000 0.0000000000
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.1936596018 0.1936596018 0.1936596018
                                      [,29]        [,30]        [,31]        [,32] [,33]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.4629100499 0.0000000000     0
movie_user_frame_clean1..3867. 0.0000000000 0.4002745043 0.4002745043 0.0000000000     0
movie_user_frame_clean1..5062. 0.2476932723 0.0000000000 0.0000000000 0.0000000000     0
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.2271298649 0.2271298649     0
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.1936596018 0.1936596018     0
                                      [,34]        [,35]        [,36]        [,37]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.0000000000 0.4629100499
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.1936596018 0.1936596018 0.1936596018 0.1936596018
                                      [,38]        [,39]        [,40]        [,41]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.4629100499 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.0000000000 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.0000000000 0.0000000000 0.2476932723 0.0000000000
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.0000000000 0.1936596018 0.1936596018 0.0000000000
                                      [,42]        [,43]        [,44]        [,45] [,46]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.0000000000 0.0000000000     0
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.0000000000     0
movie_user_frame_clean1..5062. 0.2476932723 0.0000000000 0.2476932723 0.2476932723     0
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.2271298649     0
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.0000000000 0.0000000000     0
                                      [,47]        [,48]        [,49]        [,50]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.0000000000 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.0000000000 0.1936596018
                                      [,51]        [,52]        [,53]        [,54]
movie_user_frame_clean1..2824. 0.4629100499 0.4629100499 0.4629100499 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.0000000000
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.1936596018 0.1936596018 0.1936596018 0.1936596018
                                      [,55]        [,56]        [,57]        [,58]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.0000000000 0.4629100499
movie_user_frame_clean1..3867. 0.4002745043 0.0000000000 0.0000000000 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.0000000000 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.0000000000 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
                                      [,59]        [,60]        [,61]        [,62] [,63]
movie_user_frame_clean1..2824. 0.4629100499 0.4629100499 0.0000000000 0.4629100499     0
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.4002745043     0
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.0000000000 0.0000000000     0
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.2271298649     0
movie_user_frame_clean1..3853. 0.0000000000 0.1936596018 0.1936596018 0.1936596018     0
                                      [,64]        [,65]        [,66]        [,67]
movie_user_frame_clean1..2824. 0.0000000000 0.4629100499 0.4629100499 0.4629100499
movie_user_frame_clean1..3867. 0.4002745043 0.0000000000 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.0000000000 0.2476932723 0.0000000000
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.1936596018 0.1936596018 0.1936596018 0.0000000000
                                      [,68]        [,69]        [,70]        [,71]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.0000000000 0.2476932723
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.0000000000 0.1936596018 0.1936596018 0.0000000000
                                      [,72]        [,73]        [,74]        [,75]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.4629100499 0.0000000000
movie_user_frame_clean1..3867. 0.0000000000 0.0000000000 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.0000000000 0.2476932723
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.1936596018 0.1936596018 0.0000000000 0.0000000000
                                      [,76]        [,77]        [,78]        [,79]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.4629100499 0.4629100499
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.2476932723 0.2476932723
movie_user_frame_clean1..442.  0.0000000000 0.0000000000 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
                                      [,80]        [,81]        [,82]        [,83]
movie_user_frame_clean1..2824. 0.4629100499 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..5062. 0.2476932723 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.2271298649
movie_user_frame_clean1..3853. 0.0000000000 0.1936596018 0.0000000000 0.1936596018
                                      [,84]        [,85]        [,86]        [,87]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.0000000000 0.2476932723
movie_user_frame_clean1..442.  0.2271298649 0.2271298649 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
                                      [,88]        [,89]        [,90]        [,91]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.0000000000 0.0000000000 0.0000000000 0.4002745043
movie_user_frame_clean1..5062. 0.0000000000 0.2476932723 0.0000000000 0.2476932723
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.1936596018 0.0000000000 0.0000000000 0.0000000000
                                      [,92] [,93] [,94]        [,95]        [,96]
movie_user_frame_clean1..2824. 0.4629100499     0     0 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043     0     0 0.0000000000 0.4002745043
movie_user_frame_clean1..5062. 0.0000000000     0     0 0.0000000000 0.2476932723
movie_user_frame_clean1..442.  0.2271298649     0     0 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.0000000000     0     0 0.0000000000 0.0000000000
                                      [,97]        [,98]        [,99]       [,100]
movie_user_frame_clean1..2824. 0.0000000000 0.0000000000 0.0000000000 0.0000000000
movie_user_frame_clean1..3867. 0.4002745043 0.4002745043 0.4002745043 0.4002745043
movie_user_frame_clean1..5062. 0.2476932723 0.2476932723 0.0000000000 0.0000000000
movie_user_frame_clean1..442.  0.0000000000 0.2271298649 0.2271298649 0.0000000000
movie_user_frame_clean1..3853. 0.0000000000 0.1936596018 0.0000000000 0.0000000000
##Sum rows to form denom
sum_denom <- colSums(dd_num)
sum_denom
  [1] 1.3380076914 0.6479677765 1.5316672932 0.4748231372 1.3380076914 1.5316672932
  [7] 0.6684827391 0.4207894668 1.1313927889 1.0687572433 1.5316672932 0.4748231372
 [13] 0.7106033222 0.4002745043 1.5316672932 1.5316672932 1.5316672932 0.2476932723
 [19] 0.6684827391 0.2476932723 0.6684827391 1.5316672932 0.8416273784 1.5316672932
 [25] 0.4748231372 0.6684827391 0.4207894668 0.8210639710 0.2476932723 0.6274043692
 [31] 1.2839740209 0.4207894668 0.0000000000 1.3045374283 1.0687572433 1.0687572433
 [37] 1.5316672932 0.6274043692 0.4207894668 1.5316672932 0.4002745043 1.3380076914
 [43] 0.6274043692 0.8750976415 0.4748231372 0.0000000000 0.6479677765 0.8750976415
 [49] 0.6479677765 1.0687572433 1.5316672932 1.5316672932 1.5316672932 0.4413528741
 [55] 1.1108778264 0.2271298649 0.2476932723 1.3380076914 1.3380076914 1.5316672932
 [61] 0.8210639710 1.2839740209 0.0000000000 0.8416273784 0.8836995167 1.5316672932
 [67] 1.0903144191 1.1108778264 1.0687572433 0.8210639710 0.6479677765 0.6684827391
 [73] 0.6684827391 1.0903144191 0.8750976415 0.6479677765 0.6479677765 1.3380076914
 [79] 1.3380076914 1.3380076914 0.4207894668 0.2271298649 0.4207894668 0.8750976415
 [85] 0.8750976415 0.6274043692 0.6479677765 0.1936596018 0.4748231372 0.2271298649
 [91] 0.6479677765 1.0903144191 0.0000000000 0.0000000000 0.2271298649 0.6479677765
 [97] 0.6479677765 1.0687572433 0.6274043692 0.4002745043
##Get rating
recom <- as.data.frame(sum_num / sum_denom)
colnames(recom) <- c("Rating")
##Add names of movies to ratings
movie_title <- as.data.frame(movie_user_frame$Title)
colnames(movie_title) <- c("Title")
##Recommendation list
recom_list <- cbind(movie_title, recom)
recom_list_sort <- recom_list[order(-recom_list$Rating),,drop = FALSE]
recom_list_sort
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KPGI+DQpCdWlsZGluZyBhIHJlY29tZW5kYXRpb24gc3lzdGVtIHVzaW5nIHNpbXBsZSBjb3JyZWxhdGlvbiBiZXR3ZWVuIGN1c3RvZW1lciBwYXR0ZXJucw0KPC9iPg0KYGBge3J9DQptb3ZpZV91c2VyX2ZpbGUgPC0gIjIwMTctMTEgTW92aWUgUm93IHYxLmNzdiIgDQptb3ZpZV91c2VyX2ZyYW1lIDwtIHJlYWQuY3N2KG1vdmllX3VzZXJfZmlsZSwgc3RyaW5nc0FzRmFjdG9yPUYpDQpoZWFkKG1vdmllX3VzZXJfZmlsZSkNCmBgYA0KDQoNCmBgYHtyfQ0KIyNDb252ZXJ0IGludCBjb2x1bW4gbnVtIHRvIGtlZXAgaXQgY29uc2lzdGVudCB3aXRoIG90aGVyIG51bSBjb2x1bW5zDQptb3ZpZV91c2VyX2ZyYW1lJGA0NDJgIDwtIGFzLm51bWVyaWMobW92aWVfdXNlcl9mcmFtZSRgNDQyYCkNCmBgYA0KDQoNCg0KYGBge3J9DQojI1JlbW92ZSBtb3ZpZSB0aXRsZSBjb2x1bW4gdG8gZW5zdXJlIGNvcnJlbGF0aW9uIHdvcmtzIG9uIHVzZXIgcmF0aW5ncw0KbW92aWVfdXNlcl9mcmFtZV91c2VycyA8LSBtb3ZpZV91c2VyX2ZyYW1lW2MoLTEpXQ0KYGBgDQoNCg0KYGBge3J9DQojI1J1biBjb3JyZWxhdGlvbiB0byBpZ25vcmUgTkEgdmFsdWxlcw0KbW92aWVfdXNlcl9mcmFtZV9jb3JyIDwtIGNvcihtb3ZpZV91c2VyX2ZyYW1lX3VzZXJzLCB1c2UgPSAicGFpcndpc2UuY29tcGxldGUub2JzIikNCmBgYA0KDQoNCmBgYHtyfQ0KIyNFeHRyYWN0IGNvbHVtbiB3aXRoIGNvcnJlbGF0aW9ucyBvZiB1c2VyIFggZm9yIHdob20gcmVjb21tZW5kYXRpb25zIG5lZWQgdG8gYmUgZ2VuZXJhdGVkIC0gZXguIHVzZXIgMzcxMg0KeDM3MTJfY29yciA8LSBhcy5kYXRhLmZyYW1lKG1vdmllX3VzZXJfZnJhbWVfY29yclssNywgZHJvcCA9IEZBTFNFXSkNCmNvbG5hbWVzKHgzNzEyX2NvcnIpIDwtICJ4MzcxMiINCngzNzEyX2NvcnINCmBgYA0KDQoNCmBgYHtyfQ0KIyNTb3J0IGNvcnJlbGF0aW9ucyBmb3IgdXNlciBYIGluIGRlc2NlbmRpbmcgb3JkZXIgdG8gaWRlbnRpZnkgdG9wIDUgbmVpZ2hib3JzDQp4MzcxMl9jb3JyX3NvcnQgPC0geDM3MTJfY29ycltvcmRlcigteDM3MTJfY29yciR4MzcxMiksLGRyb3AgPSBGQUxTRV0NCmBgYA0KDQoNCmBgYHtyfQ0KIyNDbGVhbiB1cCBzb3VyY2UgZnJhbWUgYnkgcmVwbGFjaW5nIE5BIHdpdGggMA0KbW92aWVfdXNlcl9mcmFtZV9jbGVhbiA8LSBtb3ZpZV91c2VyX2ZyYW1lX3VzZXJzDQptb3ZpZV91c2VyX2ZyYW1lX2NsZWFuW2lzLm5hKG1vdmllX3VzZXJfZnJhbWVfY2xlYW4pXSA8LSAwDQptb3ZpZV91c2VyX2ZyYW1lX2NsZWFuDQpgYGANCg0KDQpgYGB7cn0NCiMjQ29tcHV0ZSBudW1zDQp4MjgyNF9udW0gPSBtb3ZpZV91c2VyX2ZyYW1lX2NsZWFuJGAyODI0YCAqIHgzNzEyX2NvcnJfc29ydFsyLDFdDQp4Mzg2N19udW0gPSBtb3ZpZV91c2VyX2ZyYW1lX2NsZWFuJGAzODY3YCAqIHgzNzEyX2NvcnJfc29ydFszLDFdDQp4NTA2Ml9udW0gPSBtb3ZpZV91c2VyX2ZyYW1lX2NsZWFuJGA1MDYyYCAqIHgzNzEyX2NvcnJfc29ydFs0LDFdDQp4NDQyX251bSA9IG1vdmllX3VzZXJfZnJhbWVfY2xlYW4kYDQ0MmAgKiB4MzcxMl9jb3JyX3NvcnRbNSwxXQ0KeDM4NTNfbnVtID0gbW92aWVfdXNlcl9mcmFtZV9jbGVhbiRgMzg1M2AgKiB4MzcxMl9jb3JyX3NvcnRbNiwxXQ0KYGBgDQoNCg0KYGBge3J9DQojI0NvbWJpbmUgaW50byBudW0gZGF0YSBmcmFtZQ0Kbm5feDM3MTIgPC0gY2JpbmQoeDI4MjRfbnVtLCB4Mzg2N19udW0sIHg1MDYyX251bSwgeDQ0Ml9udW0sIHgzODUzX251bSkNCm5uX3gzNzEyDQpgYGANCg0KDQpgYGB7cn0NCiMjU3VtIHJvd3MgdG8gZm9ybSBudW0NCnN1bV9udW0gPC0gcm93U3Vtcyhubl94MzcxMikNCmBgYA0KDQoNCmBgYHtyfQ0KbW92aWVfdXNlcl9mcmFtZV9jbGVhbjEgPC0gbW92aWVfdXNlcl9mcmFtZV9jbGVhbg0KbW92aWVfdXNlcl9mcmFtZV9jbGVhbjEgW21vdmllX3VzZXJfZnJhbWVfY2xlYW4xID4gMF0gPC0gMQ0KbW92aWVfdXNlcl9mcmFtZV9jbGVhbjENCmBgYA0KDQoNCmBgYHtyfQ0KbW92aWVfdXNlcl9zZWxlY3QgPC0gZGF0YS5mcmFtZShtb3ZpZV91c2VyX2ZyYW1lX2NsZWFuMSRgMjgyNGAsIG1vdmllX3VzZXJfZnJhbWVfY2xlYW4xJGAzODY3YCwgbW92aWVfdXNlcl9mcmFtZV9jbGVhbjEkYDUwNjJgLCBtb3ZpZV91c2VyX2ZyYW1lX2NsZWFuMSRgNDQyYCwgbW92aWVfdXNlcl9mcmFtZV9jbGVhbjEkYDM4NTNgKQ0KDQojI1RyYW5zcG9zZQ0KbW92aWVfdXNlcl9zZWxlY3RfdCA8LSB0KG1vdmllX3VzZXJfc2VsZWN0KQ0KbW92aWVfdXNlcl9zZWxlY3RfdA0KYGBgDQoNCmBgYHtyfQ0KeDM3MTJfc2VsZWN0IDwtIHgzNzEyX2NvcnJfc29ydFsyOjYsXQ0KeDM3MTJfc2VsZWN0X3QgPC0gYXMuZGF0YS5mcmFtZSh4MzcxMl9zZWxlY3QpDQpgYGANCg0KYGBge3J9DQojI0NyZWF0ZSBkZW5vbSBmcmFtZQ0KZGRfbnVtIDwtIHgzNzEyX3NlbGVjdF90JHgzNzEyX3NlbGVjdCAqIG1vdmllX3VzZXJfc2VsZWN0X3QNCmRkX251bQ0KYGBgDQoNCg0KYGBge3J9DQojI1N1bSByb3dzIHRvIGZvcm0gZGVub20NCnN1bV9kZW5vbSA8LSBjb2xTdW1zKGRkX251bSkNCnN1bV9kZW5vbQ0KYGBgDQoNCg0KYGBge3J9DQojI0dldCByYXRpbmcNCnJlY29tIDwtIGFzLmRhdGEuZnJhbWUoc3VtX251bSAvIHN1bV9kZW5vbSkNCmNvbG5hbWVzKHJlY29tKSA8LSBjKCJSYXRpbmciKQ0KYGBgDQoNCg0KYGBge3J9DQojI0FkZCBuYW1lcyBvZiBtb3ZpZXMgdG8gcmF0aW5ncw0KbW92aWVfdGl0bGUgPC0gYXMuZGF0YS5mcmFtZShtb3ZpZV91c2VyX2ZyYW1lJFRpdGxlKQ0KY29sbmFtZXMobW92aWVfdGl0bGUpIDwtIGMoIlRpdGxlIikNCmBgYA0KDQpgYGB7cn0NCiMjUmVjb21tZW5kYXRpb24gbGlzdA0KcmVjb21fbGlzdCA8LSBjYmluZChtb3ZpZV90aXRsZSwgcmVjb20pDQpyZWNvbV9saXN0X3NvcnQgPC0gcmVjb21fbGlzdFtvcmRlcigtcmVjb21fbGlzdCRSYXRpbmcpLCxkcm9wID0gRkFMU0VdDQoNCmBgYA0KDQoNCmBgYHtyfQ0KcmVjb21fbGlzdF9zb3J0DQpgYGANCg0KDQo=