title: New complexity to color coding based on percentile and another factor in ggplot
body: <p>I would like to add another level of complexity to the color coding scheme I have going on in the below plot. I want to account for whether each of the values being plotted has passed a statistical test. So, the dots will only be color coded based on the percentile if they pass the test, otherwise, I would like the dot to be grey.</p>
  
  <p>Here is my code as I have it after all the helpful suggestions I received from my first post <a href="https://stackoverflow.com/questions/18473382/color-code-points-based-on-percentile-in-ggplot">Color code points based on percentile in ggplot</a> (note: this is some made up data, though I have real data which has many more entries:</p>
  
  <pre><code>dat &lt;- data.frame(key = c("a1-a3", "a1-a2"), position = 1:100, fst = rlnorm(200, 0, 1), fet = rnorm(200, 0.24, 0.54))
  
  #Get quantiles
  quants &lt;- quantile(dat$fst, c(0.95, 0.99))
  
  dat$quant  &lt;- with(dat, factor(ifelse(fst &lt; quants[1], 0,
                                    ifelse(fst &lt; quants[2], 1, 2))))
  
  dat$fisher &lt;- with(dat, factor(ifelse(fet &gt; 1.30102999566398, 0, 1)))
  
  dat$col &lt;- with(dat, factor(ifelse(fet &lt; 1.30102999566398, 3, quant)))
  
  ########theme set
  theme_set(theme_bw(base_size = 10))
  
  p1 &lt;- ggplot(dat, aes(x=position, y=fst)) +
    geom_point(aes(colour = col, size=0.2)) +
    facet_wrap(~key, nrow = 1) +
    scale_colour_manual(values = c("black", "blue", "red", "grey"), labels = c("0-95", "95-99", "99-100", "fail")) +
    ylab(expression(F[ST])) +
    xlab("Genomic Position (Mb)") +
    scale_x_continuous(breaks=c(0, 1e+06, 2e+06, 3e+06, 4e+06), labels=c("0", "1", "2", "3", "4")) +
    scale_y_continuous(limits=c(0,1)) +
    theme(plot.background = element_blank(),
      panel.background = element_blank(),
      panel.border = element_blank(),
      legend.position="none",
      legend.title = element_blank()
      )
  
  tiff(Fstvalues_colourcode3.tiff", height=2.5, width=6.5, units="in", res = 300, pointsize="10")
  p1
  dev.off()
  </code></pre>
  
  <p>My problem is in the line: dat$col &lt;- with(dat, factor(ifelse(fet &lt; 1.30102999566398, 3, quant))).  I want it to use the value from the $quant if it has an $fet value above the above listed value (or fisher == 0), and if it has an $fet value below, I would like it to make a new factor (3).  When I look at the data frame it is doing something different than this. Any comments/suggestions are much appreciated!  (I'm pretty new to coding and am finding factors are not easy to work with!!)</p>