1: Would cause A'A in (3.11) to be noninvertible. See blog. 2: The lm() call is lm(y ~ .,data=ivl[,-(1:2)]). Departments 10 and 12 seem to have a mild impact. 3: See blog post on man page for predict.usrData(). f <- function(ud,itm,usrItms,usrRatings,k) { datum <- list(userID='',itms=usrItms,ratings=usrRatings) predict(ud,datum,itm,k) } library(rectools) getInstEval() ud <- formUserData(ivl[,1:3]) print(f(ud,468,c(1,12),c(5,3),6)) 4: B Inv(A'A) A'D