how can I do PCA on a table ?

I have a 3000 x 18 table containing 18 variables (one per column) of both numerical and categorical type (6 categorical).
I would liket to do PCA on the whole dataset
but the command
[coeff,score]=pca(mytable) does not work.
any idea on how to proceed ?

 Accepted Answer

Star Strider
Star Strider on 30 May 2019
The pca function only accepts single-precision or double-precision numerical arrays. You most likely need to use the table2array (link) function first, to get the numeric data out of your table and into a form that pca can use.

4 Comments

Thanks,
I have tried and I got this error message
Error using pca (line 168)
The value of X must not be an object.
the table is now in string format. this is not suitable for the PCA function.
I tried to convert the matrix to numerical values using str2num but I got the message "Input must be a character vector or string scalar"
Unless you can extract just the numerical values, you cannot use the pca function.
Got it, thanks. I thought categorical PCA was also possible with MATLAB.
Perhaps the answer is no. I will try to then exclude the non numerical variables and see if it works !
It should work in that instance.

Sign in to comment.

More Answers (0)

Categories

Tags

Asked:

LO
on 30 May 2019

Commented:

on 7 Jun 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!