[R] facets work in qplot but facet_wrap produces an error in ggplot

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Wed Mar 25 16:08:26 CET 2015


Perhaps you had forgotten to use header=TRUE when you read the data in.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

On March 25, 2015 6:49:07 AM PDT, Loren Cassin Sackett <sackettl at colorado.edu> wrote:
>Thanks, Jeff.  I tried this previously by using a header in my data
>file
>(and 'header=TRUE'), but for some reason, that did not seem to work.
>
>Creating a 'names' vector as you suggested did solve the problem,
>though.
>
>Thank you!
>Loren
>
>
>2015-03-24 23:19 GMT-04:00 Jeff Newmiller <jdnewmil at dcn.davis.ca.us>:
>
>> You MUST put all data you plan to refer to into a data frame when
>using
>> ggplot. There are a couple of ways you could do this... the easiest
>is to
>> put a header line in the data file with column names. Or, you can
>assign a
>> vector of new names to the names of the data frame.
>>
>> names( hetshoms ) <- c( "chrom", "start.pos", "end.pos", "hets",
>> "het_stat", "homs", "hom_stat", "indiv" )
>>
>---------------------------------------------------------------------------
>> Jeff Newmiller                        The     .....       .....  Go
>Live...
>> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live
>> Go...
>>                                       Live:   OO#.. Dead: OO#.. 
>Playing
>> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
>> /Software/Embedded Controllers)               .OO#.       .OO#. 
>rocks...1k
>>
>---------------------------------------------------------------------------
>> Sent from my phone. Please excuse my brevity.
>>
>> On March 24, 2015 3:40:11 PM PDT, Loren <sackettl at colorado.edu>
>wrote:
>> >Hello all,
>> >
>> >I am having a perplexing problem trying to use facet_wrap in ggplot,
>> >with
>> >both my real dataset and a simplified dummy dataset.  I am trying to
>> >plot
>> >heterozygosity across the genome for multiple individuals, with each
>> >chromosome shown separately.
>> >
>> >My dummy data:
>> >chr1   123000  124000  2       0.00002 26      0.00026 indiv1
>> >chr1   124000  125000  3       0.00003 12      0.00012 indiv1
>> >chr1   125000  126000  1       0.00001 6       0.00006 indiv1
>> >chr1   126000  126000  2       0.00002 14      0.00014 indiv1
>> >chr2   123000  124000  6       0.00006 20      0.00020 indiv1
>> >chr2   124000  125000  0       0.00000 12      0.00012 indiv1
>> >chr1   123000  124000  2       0.00002 26      0.00026 indiv2
>> >chr1   124000  125000  3       0.00003 12      0.00012 indiv2
>> >chr1   125000  126000  1       0.00001 6       0.00006 indiv2
>> >chr1   126000  126000  2       0.00002 14      0.00014 indiv2
>> >chr2   123000  124000  6       0.00006 20      0.00020 indiv2
>> >chr2   124000  125000  0       0.00000 12      0.00012 indiv2
>> >
>> >My code to read in the data:
>> >hetshoms <- read.table("fakedata.txt", header=F)
>> >
>> >chrom <- hetshoms$V1
>> >start.pos <- hetshoms$V2
>> >end.pos <- hetshoms$V3
>> >hets <- hetshoms$V4
>> >het_stat <- hetshoms$V5
>> >homs <- hetshoms$V6
>> >hom_stat <- hetshoms$V7
>> >indiv <- hetshoms$V8
>> >
>> >HetRatio <- hets/(hets+homs)
>> >
>> >When I try to plot the chromosomes separately in qplot, it works
>fine:
>> >testplot <- qplot(start.pos, HetRatio, facets = chrom ~ .,
>> >colour=chrom)
>> >
>> >But when I try an analogous thing in ggplot, it does not work.
>> >The first part works fine:
>> >testplot <- ggplot(hetshoms, aes(x=start.pos, y=HetRatio)) +
>> >geom_point(aes(color=chrom, alpha=1/4))
>> >
>> >but when I try to add the facet_wrap:
>> >testplot + facet_wrap(~chrom)
>> >
>> >This produces the following error (and no plot)
>> >"Error en layout_base(data, vars, drop = drop) :
>> >  At least one layer must contain all variables used for facetting"
>> >
>> >I have tried adding an (as.formula(paste)) and directly calling
>> >hetshoms$V1
>> >but neither solves the problem.
>> >
>> >Can anyone please point out where I have gone wrong and how to fix
>my
>> >code?
>> >
>> >Much appreciated,
>> >Loren
>> >
>> >
>> >
>> >
>> >
>> >
>> >--
>> >View this message in context:
>> >
>>
>http://r.789695.n4.nabble.com/facets-work-in-qplot-but-facet-wrap-produces-an-error-in-ggplot-tp4705058.html
>> >Sent from the R help mailing list archive at Nabble.com.
>> >
>> >______________________________________________
>> >R-help at 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.
>>
>>



More information about the R-help mailing list