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
# Input sequence in loop
for (i in 1:3){
list <- list.files("~/ukcp09/txt/x.djf", seq[[i]])
file <- lapply(list, read.table)
# Calculations
mean <- (Reduce("+", file))/c
d2[[i]] <- file[[i]] - mean
Apparently, the following command is the source of the error.
d2[[i]] <- file[[i]] - mean
It works OK when I typed into the terminal the following after running
the script.
> for (j in 1:3) print (file[[j]]-mean)
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
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 fileNo 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]] - meanyou 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
On Dec 20, 2009, at 2:40 PM, Muhammad Rahiz 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 > > # Input sequence in loop > for (i in 1:3){ > list <- list.files("~/ukcp09/txt/x.djf", seq[[i]]) > file <- lapply(list, read.table) > > # Calculations > mean <- (Reduce("+", file))/c > d2[[i]] <- file[[i]] - mean > > Apparently, the following command is the source of the error. > > d2[[i]] <- file[[i]] - mean > > It works OK when I typed into the terminal the following after > running the script. > > > for (j in 1:3) print (file[[j]]-mean)Generally R is able to keep straight what is a vector and what is a function but you are using quite a few names for vectors and lists which should be reserved (at least in your head) for functions. Here is a list of function names to avoid as object names: c file list seq mean Why not try being so ambiguous? ObF: Would you call your dog "dog"? -- David Winsemius, MD Heritage Laboratories West Hartford, CT
Hello Everyone, I am quite new in R software. I am doing a grofit to study growth. I have a matrix of time with 10 weeks and 26 individuals ie 10 columns x 26 rows and I have a data.frame with 3 columns: 1 for Individual Id (which repeats it self, since I have 10 values for each individual correponding to each week) the size of the individual (1 or 2) and the Length value. I run the grofit and get the following error Data error [-1:-3]: object type "closure" not subsettable I have no idea what it means or if I am doing something wrong! Could anyone help me? Thanks Tamara Rubilar Lab. Bentos Centro Nacional Patagonico Puerto Madryn Argentina -- View this message in context: http://r.789695.n4.nabble.com/Object-of-type-closure-not-subsettable-tp975861p2222942.html Sent from the R help mailing list archive at Nabble.com.