Why factor analysis are only applied to numeric data?



I was trying to do factor analysis on iris data set but while performing the factor analysis I am getting the error that it can applied to numeric data only but I want to know why this is not possible .

z <- iris
Error in factanal(z, factor = 2) :
factor analysis applies only to numerical variables



It does not work with categorical variables because factor analysis is based on a correlation or covariance matrix, it assumes the observed indicators are measured continuously, are distributed normally, and that the associations among indicators are linear.