On Mon, Aug 11, 2014 at 9:00 AM, michelle maurin <michimau...@hotmail.com> wrote: > see code below > > > pollutantmean <- function(directory, pollutant, id = 1:332) { > files_list <- list.files(directory, full.names=TRUE) #creates a list of > files > dat <- data.frame()#creates an empty data frame > for (i in 1:332) { > dat <- rbind(dat, read.csv(files_list[i]))#loops through the files, > rbinding them together > } > > #subsets the rows that match the 'pollutant' argument > median(dat_subset$pollutant, na.rm=TRUE) #identifies the median of the > subset > } > > > > ##I highlighted the area that I think has the problem , I helped my self > using the tutorial found on the forum ,for assignment 1
I really think your not where you believe you are. This is an email list for general questions on the R language. I am not aware of an "the tutorial found on the forum". But I do think that I have an idea of what your problem is. Basically you want to find all the rows in "dat" which have a pollutant (dat$pollutant) of either "sulfate" or "nitrate". The which() function isn't going to do that for you. The which() function takes a logical vector of TRUE and FALSE values. It return an integer vector which has the index values of the TRUE entries. For example: > which(c(TRUE,FALSE,FALSE,TRUE,FALSE,TRUE)) [1] 1 4 6 I realise how this can be thought of as how to do this. And if could work, but is unnecessary in this case. But the real problem is the segment: dat["suflate","nitrate"] == pollutant If you would try this (I can't because I don't have the data files), you would see that this is not asking the right question. You want to see if dat$pollutant is either "suflate" or "nitrate". Or, expanding a bit you want to ask: 'is dat$pollutant equal to "suflate"? If not, is it equal to 'nitrate"?'. The answer to this question will be the proper logical vector that you can either use in the which() function, or directly as a row selector. The hint on how to ask this question is to use the ifelse() function properly. So your line (with the critical method of the proper use of ifelse) should look something like: dat_subset <- dat[which(ifelse(????),]; #or, equivalently dat_subset <- dat[ifelse(???),]; This latter is valid because the R language will accept a logical vector as a "selector" and only return the data where the logical value is TRUE. I am deliberately leaving the challenge of how to use the ifelse() for you. Remember, from the documentation, that the form of the ifelse() is: ifelse(condition,result-if-condition-true,result-if-condition-false.) Hopefully this is a sufficient clew to get you going. I won't comment on the rest of the code because I don't know the problem. Or what "forum" you're talking about. > > Best regards > > > > Michelle > > > > ________________________________ > Date: Sun, 10 Aug 2014 22:06:38 -0500 > Subject: Re: [R] Problem with assignment 1 part 1 > From: john.archie.mck...@gmail.com > To: michimau...@hotmail.com > CC: r-help@r-project.org > > What code. > > Also, the forum has a "no homework" policy. Your subject implies this is > homework, so you might not get any answers. You might get a hint or two > though. > > On Aug 10, 2014 10:00 PM, "michelle maurin" <michimau...@hotmail.com> wrote: > > I think my code is very close I can seem to be able to debug it Might be > something very simple I know the problem is on the last 3 lines of code can > you please help? > Thanks > Michelle > ______________________________________________ > R-help@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. > -- There is nothing more pleasant than traveling and meeting new people! Genghis Khan Maranatha! <>< John McKown ______________________________________________ R-help@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.