Hi Bradley, I think I can see one or two reasons why you are getting creamed.
First, pollutantmean is a function, and there is no method for taking the mean of a function. Second, nitrate is unlikely to be an extractable element of pollutantmean given the above code (that's the error). I suspect that you have been asked to read the last 53 files of a set of 332. When reading each one, extract the values of the element "nitrate" from each dataframe that is created. concatenate these "nitrate" values as you go, resulting in a vector of nitrate concentration values take the mean of that vector, probably removing any NA values then return that mean value from the function. While I'm not going to do the job for you, your assigned the names of the files to the variable "files" and then tried to read from a variable named "files_full". That won't work. You then tried to merge the dataframes by adding each successive one to the previous ones. This will work, but you haven't returned the result from the function, or assigned it to another variable. You then ask for the structure of "pollutantmean" which is a function, not a data frame If you stick with the data frame accumulation, I suggest putting a: return(dat) as the last line of the function, and assigning it to something: pollutant.df<-pollutantmean(...) Then look at the structure of pollutant.df and if you are lucky, there will be a "nitrate" element. Jim On Fri, Dec 18, 2015 at 3:06 PM, Bradley Wolf <chanmo5...@gmail.com> wrote: > HI, > I am very new to R (and programming in general) and am taking a class in > it now. I am getting creamed. I want the last part of the function > statement below to give me the mean of the data set of nitrates. When I do > it I get an error statement stating: > > Error in pollutantmean$nitrate : > object of type 'closure' is not subsettable > > I am bringing in 332 records. I want the mean of nitrates for 52 of those > records. Any suggestions would be helpful. > > pollutantmean <- function(specdata, nitrate,id = 1:332){ > files<-list.files(specdata, full.names = TRUE) > dat<-data.frame() > for (i in 280:332) > dat <- rbind(dat, read.csv(files_full[i])) > } > str(pollutantmean) > mean(pollutantmean$nitrate, na.rm = TRUE) > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.