title: Aesthetics must either be length one, or the same length as the dataProblems
body: <p>I would like to make a plot with X values as a subset of the measurement and Y-values as another subset of the measured data.</p>
  
  <p>In the example as below, I have 4 products p1, p2, p3 and p4. Each are priced according to their skew, color and version.
  I would like to create a multi-facet plot that depicts the P3 products (Y-axis) vs P1 products (X-axis).</p>
  
  <p>My attempt as below has failed miserably with the following error:</p>
  
  <blockquote>
    <p>Error: Aesthetics must either be length one, or the same length as
    the dataProblems:subset(price, product == "p1"), subset(price, product
    == "p3")</p>
  </blockquote>
  
  <pre><code>library(ggplot2)
  product=c("p1","p1","p1","p1","p1","p1","p1","p1","p2","p2","p2","p2","p2","p2","p2","p2","p3","p3","p3","p3","p3","p3","p3","p3","p4","p4","p4","p4","p4","p4","p4","p4")
  skew=c("b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a","b","b","b","b","a","a","a","a")
  version=c(0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2,0.1,0.1,0.2,0.2)
  color=c("C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2","C1","C2")
  price=c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)
  df = data.frame(product, skew, version, color, price)
  # First plot all the data
  p1 &lt;- ggplot(df, aes(x=price, y=price, colour=factor(skew))) + geom_point(size=2, shape=19)
  p1 &lt;- p1 + facet_grid(version ~ color)
  p1 # This gavea very good plot. So far so good
  # Now plot P3 vs P1
  p1 &lt;- ggplot(df, aes(x=subset(price, product=='p1'), y=subset(price, product=='p3'), colour=factor(skew))) + geom_point(size=2, shape=19)
  p1
  # failed with: Error: Aesthetics must either be length one, or the same length as the dataProblems:subset(price, product == "p1"), subset(price, product == "p3")
  </code></pre>
  
  <p>This is the result I am expecting:</p>
  
  <p><img src="https://i.stack.imgur.com/JrGlv.png" alt="This is the result I am expecting"></p>