[R] subscript out of bounds error in lda

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri Jun 15 19:11:40 CEST 2007


On Fri, 15 Jun 2007, Silvia Lomascolo wrote:

>
> I work with Windows, R version 2.4.1
>
> I'm trying to do a discriminant analysis and, in trying to figure out how to
> do it following the example from R help, I'm getting an error that says
> 'subscript out of bounds'.  I don't know what this means and how to solve it
> (I'm very new with R)
>
> I'm doing everything in this made-up test matrix:
>
>   group var1 var2 var3
> 1      1    3   55    6
> 2      1    4   66    7
> 3      1    5   55    8
> 4      1    4   66    7
> 5      1    3   44    6
> 6      1    4   55    5
> 7      2    5   88    9
> 8      2    4   99    8
> 9      2    8   88    9
> 10     2    9   76    8
> 11     2    8   66    9
> 12     2    9   99   10
> 13     2   10  100    9
>
> I write:
>
> data.tb<-read.table('locationHere.txt', header=T)
> data.df<-as.data.frame (data.tb)

Wny call as.data.frame on a data frame?

> train<-sample (1:63, 30)

Why sample from 1:63 with 13 rows?

> table (data.df$group[train])
> data.disc<-lda(group~., data.tb, subset = train)
> data.disc
> predict (data.disc, data.df[-train,])$class
>
> This is where I get the message:
>
> Error in `[.data.frame`(data.df, -train, ) :
>        subscript out of bounds

traceback() is your friend:

> traceback()
8: `[.data.frame`(data.df, -train, )
7: data.df[-train, ]
6: inherits(x, "data.frame")
5: is.data.frame(data)
4: model.frame.default(Terms, newdata, na.action = na.pass, xlev = 
object$xlevels)
3: model.frame(Terms, newdata, na.action = na.pass, xlev = object$xlevels)
2: predict.lda(data.disc, data.df[-train, ])
1: predict(data.disc, data.df[-train, ])
>

So, let's take a look at the top lines.

> train
  [1] 46 42 30 13 27 63 19 47  3 52 62 16 26  4 61 23 59 44 40 38 25 55 50 
10 43
[26]  2  8 31  7 11
> nrow(data.df)
[1] 13

So, you are asking for number 46 out of 13 rows.  Now perhaps you didn't 
show us all the problem, but hopefully this helps you find the error.  If 
not, the bottom of every R-help message says

PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-help mailing list