[R] nnet for regression, mixed factors/numeric in data.frame
Georg Ruß
research at georgruss.de
Thu Dec 9 09:23:26 CET 2010
Hi there,
this is more a comment and a solution rather than a question, but I
thought I'd post it since it cost some time to dig down to the issue and
maybe someone else could run into this.
I'm using the nnet function for a regression task. I'm inputting the
following data frame:
> 'data.frame': 4970 obs. of 11 variables:
$ EC25 : num 67.5 67.6 68 69 69.5 ...
$ YIELD07 : num 5.43 5.68 5.88 5.81 6.47 5.96 5.71 5.92 5.92 6.47
$ N3 : num 63 63 55 58 59 57 59 55 54 54 ...
$ N2 : num 45 44 41 42 44 43 46 47 46 43 ...
$ N1 : num 68 68 69 69 69 69 69 69 69 68 ...
$ REIP32 : num 725 725 725 725 725 ...
$ REIP49 : num 727 728 728 728 727 ...
$ ELEVATION: Factor w/ 1127 levels "67.71","67.73",..: 17 19 23 19 19 16 26 18 33 9 ...
using the formula interface:
> formula <- YIELD07 ~ N1 + N2 + N3 + EC25 + REIP32 + REIP49 + ELEVATION
However, using the above data.frame, R spits out the following message:
> Error in nnet.default(x, y, w, ...) : too many (56701) weights
After changing the ELEVATION variable to a numeric variable via the
following line:
> f611$ELEVATION <- as.numeric(levels(f611$ELEVATION)[f611$ELEVATION])
the model runs fine.
It's funny though that all the other models I've used for regression
worked fine with ELEVATION being a factor variable. And it's not mentioned
in ?nnet (there, it only says that if the response variable is a factor
it's going to be a classification network).
Regards,
Georg.
--
Research Assistant
Otto-von-Guericke-Universität Magdeburg
research at georgruss.de
http://research.georgruss.de
More information about the R-help
mailing list