Payam Minoofar <payam.minoofar at meissner.com> writes:
> I have managed to format my data into a single datframe consisting of two
AsIs response and predictor dataframes in order to supply the plsr command of
the pls package for principal components analysis.
>
> When I execute the command, however, I get this error:
>> fiber1 <- plsr(respmat ~ predmat, ncomp=1,
data=inputmat,validation="LOO")
> Error in model.frame.default(formula = respmat ~ predmat, data = inputmat)
:
> invalid type (list) for variable 'respmat'
>
> I happen to have a lot of NAs in some of the columns. Is that the
> problem?
The underlying PLSR/PCR functions do not handle NAs, but that is
probably not the problem here.
My guess is that you have done something like
inputmat <- data.frame(respmat = I(foo), predmat = I(bar))
where foo (and perhaps bar) is a _data.frame_ (that is at leas
consistent with the error message). If sapply(inputmat, class) produces
something like
respmat predmat
[1,] "AsIs" "AsIs"
[2,] "data.frame" "data.frame"
then this is certainly the case. That will not work. They should be
matrices instead of data frames, for instance by converting them like
this:
inputmat <- data.frame(respmat = I(as.matrix(foo)), predmat =
I(as.matrix(bar)))
As for missing values: the default behaviour of plsr is to omit cases
with missing values. This is controlled by the 'na.action' argument.
See ?na.action for details.
--
Regards,
Bj?rn-Helge Mevik