[R] Object of type 'closure' not subsettable

Petr PIKAL petr.pikal at precheza.cz
Mon Dec 21 15:05:16 CET 2009


Hi

You were instucted to 

> > 1. Read a good introduction to R. You are making a number of
> > fundamental mistakes here.
> >
> > 2. Run each line separately and check what value you get back by 
printing it.
> >
> > 3. Don't give your objects the same name as R functions (you're using
> > 'seq', 'file', and 'mean'). Although this may work, it will confuse
> > people later...

which you clearly did not do.

r-help-bounces at r-project.org napsal dne 21.12.2009 14:43:44:

> Thanks Barry for the clarification.
> 
> With regards to the following;
> 
> d2[[i]] <- file[[i]] - mean
> 
> renamed to
> 
> d2[[i]] <- f[[i]] - m

What is d2? What does

str(d2) 

tell about the object.

for everybody except you the error message is 

d2[[i]] <- f[[i]] - m
Error: object 'f' not found

So what do you expect? Barry clearly explained that d2 is probably a 
function based on what you explained that you did.

d2<-file
d2[[1]]
Error in d2[[1]] : object of type 'closure' is not subsettable

Besides of reading a tiny part of R intro docs especially about objects 
and how to manipulate them you could consult also apply family of 
functions (lapply, sapply, ...) and also ave which probably do what you 
want without twisting R to C programming.

ave(some.data, some.levels, FUN=function(x) x-mean(x))
shall do what you want

Regards
Petr


> 
> The object f contains the following so clearly f is subsettable
> 
> [[1]]
>   V1
> 1 10
> 2 10
> 3 10
> 
> [[2]]
>   V1
> 1 11
> 2 11
> 3 11
> 
> [[3]]
>   V1
> 1 12
> 2 12
> 3 12
> 
> My plan is to subtract m from each subset of f and to store the output 
> as each individual subsets. So,
> 
> output1 <- f[[1]] - m
> output2 <- f[[2]] - m
> output3 <- f[[3]] - m
> 
> If I run the following to achieve the desired result, there is an error 
> as written in the subject heading.
> 
> d2[[i]] <- f[[i]] - m
> 
> If I run the following, the error is gone but I'm not getting the output 
for 
> each individual file I require
> 
> d2 <- f[[i]] - m
> 
> The issue is, how do I make d2 subsettable?
> 
> 
> Thanks.
> 
> Muhammad
> 
> 
> Muhammad Rahiz  |  Doctoral Student in Regional Climate Modeling  
> Climate Research Laboratory, School of Geography & the Environment 
> Oxford University Centre for the Environment
> South Parks Road, Oxford, OX1 3QY, United Kingdom 
> Tel: +44 (0)1865-285194    Mobile: +44 (0)7854-625974
> Email: muhammad.rahiz at ouce.ox.ac.uk
> 
> 
> 
> 
> 
> 
> Barry Rowlingson wrote:
> > On Sun, Dec 20, 2009 at 7:40 PM, Muhammad Rahiz
> > <muhammad.rahiz at ouce.ox.ac.uk> wrote:
> > 
> >> Hi all,
> >>
> >> How can I overcome the error "object of type 'closure' not 
subsettable"
> >>
> >> I ran the following script
> >> seq <- paste(seq(1914, 1916, by=1), "*.y", sep=".") # make sequence
> >> c <- 3 # total number of files
> >> d2 <- file # creates dummy file
> >> 
> >
> >  No it doesn't. It copies the object called 'file' into an object
> > called 'd2'. What's the object called 'file'? If you've not created
> > one already, its the 'file' function that R uses to read stuff from
> > files. So when you do:
> >
> >
> > 
> >> d2[[i]] <- file[[i]] - mean
> >> 
> >
> >  you are trying to subset from d2 (and from 'file'). If I do this:
> >
> >  > file[[2]]
> >
> >  I get your error message:
> >
> > Error in file[[2]] : object of type 'closure' is not subsettable
> >
> >  So clearly you aren't doing what you think you're doing.
> >
> >  Some hints:
> >
> > 1. Read a good introduction to R. You are making a number of
> > fundamental mistakes here.
> >
> > 2. Run each line separately and check what value you get back by 
printing it.
> >
> > 3. Don't give your objects the same name as R functions (you're using
> > 'seq', 'file', and 'mean'). Although this may work, it will confuse
> > people later...
> >
> > Barry
> >
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list