On Oct 5, 2009, at 9:39 PM, stephen sefick wrote:
Look at the bottom of the message for my question #here is a little function that I wrote USGS <- function(input="discharge", days=7){ library(chron) library(gsubfn) #021973269 is the Waynesboro Gauge on the Savannah River Proper (SRS) #02102908 is the Flat Creek Gauge (ftbrfcms) #02133500 is the Drowning Creek (ftbrbmcm) #02341800 is the Upatoi Creek Near Columbus (ftbn) #02342500 is the Uchee Creek Near Fort Mitchell (ftbn) #02203000 is the Canoochee River Near Claxton (ftst) a <- "http://waterdata.usgs.gov/nwis/uv?format=rdb&period=" b <- "&site_no=021973269,02102908,02133500,02341800,02342500,02203000" z <- paste(a, days, b, sep="") L <- readLines(z)
#trimmed long comment that broke function
L.USGS <- grep("^USGS", L, value = TRUE) DF <- read.table(textConnection(L.USGS), fill = TRUE) colnames(DF) <- c("agency", "gauge", "date", "time", "gauge_height", "discharge", "precipitation") pat <- "^# +USGS +([0-9]+) +(.*)" L.DD <- grep(pat, L, value = TRUE) library(gsubfn) DD <- strapply(L.DD, pat, c, simplify = rbind) DDdf <- data.frame(gauge = as.numeric(DD[,1]), gauge_name = DD[,2]) both <- merge(DF, DDdf, by = "gauge", all.x = TRUE) dts <- as.character(both[,"date"]) tms <- as.character(both[,"time"]) date_time <- as.chron(paste(dts, tms), "%Y-%m-%d %H:%M") DF <- data.frame(date_time, both) library(ggplot2) #discharge if(input=="discharge"){ qplot(as.POSIXct(date_time), discharge, data=DF, geom="line")+facet_wrap(~gauge_name, scales="free_y")+coord_trans(y="log10") }else{ #precipitation qplot(as.POSIXct(date_time), precipitation, data=subset(DF, precipitation!="NA"), geom="line")+facet_wrap(~gauge_name, scales="free_y") } } USGS("precip") I would like to have the cumsum based on the facet gauge_name - in other words a cummulative rainfall amount for each gauge_name
You want "the cumsum" of <something> but you have wrapped so much up in that function (inlcuding library calls???) that I cannot see what that <something> would be. Not all of us read ggplot calls. The canonical route to getting cumsums by a factor is with ave. Something like:
DF$cum_x <- ave(DF$x, DF$fac, cumsum) -- David Winsemius, MD Heritage Laboratories West Hartford, CT ______________________________________________ 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.