[R] error in dat

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Jun 16 10:57:55 CEST 2008


On Mon, 16 Jun 2008, Wacek Kusnierczyk wrote:

> Paul Adams wrote:
>> Hello everyone,
>> I have the following code which keeps giving me an error.
>> The code is:
>> dat<-read.table(file="C:\\Documents and Settings\\Owner\\My Documents\\eisen.txt",header=T,row.names=1,blank.lines.skip=F,na..strings="NA")
>> dimnames(dat)((1)) <-as.character(dat(,1))
>> dat<-dat(,-1)
>> dat<-as.data.frame(dat)
>> file.show(file="C:\\Documents and Settings\\Owner\\My Documents\\eisen.txt")
>> ann<-read.table(file="C:\\Documents and Settings\\Owner\\My Documents\\eisenClasses.txt",header=T)
>> file.show(file="C:\\Documents and Settings\\Owner\\My Documents\\eisenClasses.txt")
>> cl<-as.character(ann[,2])
>> dat<-dat[,cl]
>> gc<-cl(1:19)
>> act<-cl(20:39)
>> x<-as.numeric(dat(2000,gc))
>> y<-as.numeric(dat(2000,act))
>> x<-x(!is..na(x))
>> y<-y(!is.na(y))
>> xy.list<-list(x,y)
>> boxplot(xy.list,col=c("red","blue"),main="Gene 2000")
>> The error is:   "error in eval .with.vis(expr, envir, enclos)  :
>> could not find function "dat"
>
> you misuse the syntax, check the docs.  with 'dat(...)' r tries to apply
> dat, but dat is a data frame, and is thus not applicable.  what you want
> is dat[...].
>
> you can argue that the error message is misleading;  unless you defined
> one, r cannot find a function named 'dat', but it does find your data
> frame, and it should complain about its non-applicability.

It is this explanation which is misleading.  R (not r) looks for a 
function named 'dat': it does not find the data frame when looking for a 
function.  To be explicit, when R encounters foo() it looks in the current 
environment for a function named 'foo' and ignores all other objects named 
'foo' even if they are higher on the search path.  This was not the 
behaviour of Blue-Book S, but it has been the behvaviour of S and R for 
many years.

-- 
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