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.