untrusted comment: verify with st.pub RWQTleDnDrmVqYiHepqqttoENkPlzDMAzyGWkfb8OErofliezK7Q+Lr8O01LgfwuscUxjJ0uH1aEuJCnj0+BS24/OYYj5a6uMgk= #!/usr/local/bin/sbcl --dynamic-space-size 2560 ;;I didn't actually use that shebang but I think it works (require :asdf) (require :clml) ;; data.sexp is like (("name" "x" "y") ("1" 2.0d0 3.0d0) ..) ;; (A hundred lines), then (let ((CLML.HJS.READ-DATA:pick-and-specialize-data (CLML.HJS.READ-DATA:Read-data-from-file #p"data.sexp") :except '(0) :data-types (list :numeric :numeric))) (multiple-value-setq (result model) (CLML.pca:princomp data :method :covariance)) (print "loading") (terpri) (prin1 (clml.pca:loading-factors result)) (print "contributions") (terpri) (prin1 (clml.pca:contributions result))) ;;princomp is a fundamental tool.