The psych package stores the actual matrix in $rho in your cormat object. In your case, fa(cormat$rho)
will fix that problem. Bill also includes the fa.poly()
function, which will compute the polychoric correlations from a raw data matrix before running a factor analysis on that.
Be a bit cautious with your results though. Your resulting matrix was non-Gamian (i.e., had a negative eigenvalue), which can happen when they're estimated pairwise or you have large sampling errors (see Garrido, Abad, & Ponsosa, 2013).