Hi, Whether or not what follows is to be recommended I don't know, but it seems to work,
p <- ggplot(diamonds, aes(carat, ..density..)) + geom_histogram(binwidth = 0.2) x = quote(cut) facets = facet_grid(as.formula(bquote(.~.(x)))) p + facets HTH, baptiste 2009/10/5 Bryan Hanson <han...@depauw.edu>: > Thanks Thierry for the work-around. I was out of ideas. > > I had looked around for the facet_grid() analog of aes_string(), and > concluded there wasn't one. The only thing I found was the notion of > > facet_grid("...") but apparently it is intended for some other use, as it > doesn't work as I thought it would (like a hypothetical > facet_grid_string()). > > Thanks so much. Bryan > > > On 10/5/09 4:12 AM, "ONKELINX, Thierry" <thierry.onkel...@inbo.be> wrote: > >> Dear Bryan, >> >> In the ggplot() function you can choose between aes() and aes_string(). >> In the first you need to hardwire the variable names, in the latter you >> can use objects which contain the variable names. So in your case you >> need aes_string(). >> >> Unfortunatly, facet_grid() works like aes() and not like aes_string(). >> That is why you are getting errors. >> >> A workaround would be to add a dummy column to your data. >> >> library(ggplot2) >> data <- mpg >> fac1 <- "cty" >> fac2 <- "drv" >> res <- "displ" >> data$dummy <- data[, fac2] >> ggplot(data, aes_string(x = fac1, y = res)) + geom_point() + >> facet_grid(.~dummy) >> >> HTH, >> >> Thierry >> >> >> ------------------------------------------------------------------------ >> ---- >> ir. Thierry Onkelinx >> Instituut voor natuur- en bosonderzoek / Research Institute for Nature >> and Forest >> Cel biometrie, methodologie en kwaliteitszorg / Section biometrics, >> methodology and quality assurance >> Gaverstraat 4 >> 9500 Geraardsbergen >> Belgium >> tel. + 32 54/436 185 >> thierry.onkel...@inbo.be >> www.inbo.be >> >> To call in the statistician after the experiment is done may be no more >> than asking him to perform a post-mortem examination: he may be able to >> say what the experiment died of. >> ~ Sir Ronald Aylmer Fisher >> >> The plural of anecdote is not data. >> ~ Roger Brinner >> >> The combination of some data and an aching desire for an answer does not >> ensure that a reasonable answer can be extracted from a given body of >> data. >> ~ John Tukey >> >> -----Oorspronkelijk bericht----- >> Van: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] >> Namens Bryan Hanson >> Verzonden: vrijdag 2 oktober 2009 17:21 >> Aan: <R Help >> Onderwerp: [R] ggplot2: proper use of facet_grid inside a function >> >> Hello Again R Folk: >> >> I have found items about this in the archives, but I'm still not getting >> it right. I want to use ggplot2 with facet_grid inside a function with >> user specified variables, for instance: >> >> p <- ggplot(data, aes_string(x = fac1, y = res)) + facet_grid(. ~ >> fac2) >> >> Where data, fac1, fac2 and res are arguments to the function. I have >> tried >> >> p <- ggplot(data, aes_string(x = fac1, y = res)) + facet_grid(. ~ >> as.name(fac2)) >> >> and >> >> p <- ggplot(data, aes_string(x = fac1, y = res)) + facet_grid(". ~ >> fac2") >> >> But all of these produce the same error: >> >> Error in `[.data.frame`(plot$data, , setdiff(cond, names(df)), drop = >> FALSE) : >> undefined columns selected >> >> If I hardwire the true identity of fac2 into the function, it works as >> desired, so I know this is a problem of connecting the name with the >> proper value. >> >> I'm up to date on everything: >> >> R version 2.9.2 (2009-08-24) >> i386-apple-darwin8.11.1 >> >> locale: >> en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8 >> >> attached base packages: >> [1] grid datasets tools utils stats graphics >> grDevices methods >> [9] base >> >> other attached packages: >> [1] Hmisc_3.6-0 ggplot2_0.8.3 reshape_0.8.3 >> proto_0.3-8 >> [5] mvbutils_2.2.0 ChemoSpec_1.1 lattice_0.17-25 >> mvoutlier_1.4 >> [9] plyr_0.1.8 RColorBrewer_1.0-2 chemometrics_0.4 som_0.3-4 >> >> [13] robustbase_0.4-5 rpart_3.1-45 pls_2.1-0 pcaPP_1.7 >> >> [17] mvtnorm_0.9-7 nnet_7.2-48 mclust_3.2 >> MASS_7.2-48 >> [21] lars_0.9-7 e1071_1.5-19 class_7.2-48 >> >> loaded via a namespace (and not attached): >> [1] cluster_1.12.0 >> >> Thanks for any help! Bryan >> ************* >> Bryan Hanson >> Professor of Chemistry & Biochemistry >> DePauw University, Greencastle IN USA >> >> ______________________________________________ >> 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. >> >> Druk dit bericht a.u.b. niet onnodig af. >> Please do not print this message unnecessarily. >> >> Dit bericht en eventuele bijlagen geven enkel de visie van de schrijver weer >> en binden het INBO onder geen enkel beding, zolang dit bericht niet bevestigd >> is >> door een geldig ondertekend document. The views expressed in this message >> and any annex are purely those of the writer and may not be regarded as >> stating >> an official position of INBO, as long as the message is not confirmed by a >> duly >> signed document. > > ______________________________________________ > 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. > ______________________________________________ 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.