title: Filtering dataframes with formattable
body: <p>Sample Data (amended from <code>formattable</code> github docs):</p>
  
  <pre><code>df &lt;- data.frame(
    id = 1:10,
    name = c("Bob", "Ashley", "James", "David", "Jenny", 
             "Hans", "Leo", "John", "Emily", "Lee"), 
    age = c(48, 47, 40, 28, 29, 29, 27, 27, 31, 30),
    test1_score = c(18.9, 19.5, 19.6, 12.9, 11.1, 7.3, 4.3, 3.9, 2.5, 1.6),
    test2_score = c(9.1, 9.1, 9.2, 11.1, 13.9, 14.5, 19.2, 19.3, 19.1, 18.8),
    stringsAsFactors = FALSE)
  </code></pre>
  
  <p>You can make a pretty table with extra color formatting like this:</p>
  
  <pre><code>library(formattable)
  formattable(df, list(
    age = color_tile("white", "orange"),
    test1_score = color_bar("pink", 0.2),
    test2_score = color_bar("pink", 0.2)
  ))
  </code></pre>
  
  <p>Looks like this:</p>
  
  <p><a href="https://i.stack.imgur.com/L1LC2.png" rel="noreferrer"><img src="https://i.stack.imgur.com/L1LC2.png" alt="enter image description here"></a>   </p>
  
  <p>What I want to do is to now filter this table such that I only keep the first n rows - here n=3.  The way not to do it is to do the typical subsetting, because the color scales are now only applied to the min/max of the subset of the data, not the original data. i.e.</p>
  
  <pre><code>formattable(df[1:3,], list(
    age = color_tile("white", "orange"),
    test1_score = color_bar("pink", 0.2),
    test2_score = color_bar("pink", 0.2)
  ))
  </code></pre>
  
  <p>This looks like this:</p>
  
  <p><a href="https://i.stack.imgur.com/EjoI8.png" rel="noreferrer"><img src="https://i.stack.imgur.com/EjoI8.png" alt="enter image description here"></a></p>
  
  <p>This has rescaled the colors obviously.</p>
  
  <p>Looking at the <code>str</code> of the object:</p>
  
  <pre><code>str(
  formattable(df, list(
    age = color_tile("white", "orange"),
    test1_score = color_bar("pink", 0.2),
    test2_score = color_bar("pink", 0.2)
  )) 
  )
  
  Classes ‘formattable’ and 'data.frame': 10 obs. of  5 variables:
   $ id         : int  1 2 3 4 5 6 7 8 9 10
   $ name       : chr  "Bob" "Ashley" "James" "David" ...
   $ age        : num  48 47 40 28 29 29 27 27 31 30
   $ test1_score: num  18.9 19.5 19.6 12.9 11.1 7.3 4.3 3.9 2.5 1.6
   $ test2_score: num  9.1 9.1 9.2 11.1 13.9 14.5 19.2 19.3 19.1 18.8
   - attr(*, "formattable")=List of 4
    ..$ formatter: chr "format_table"
    ..$ format   :List of 1
    .. ..$ :List of 3
    .. .. ..$ age        :function (x)  
    .. .. ..$ test1_score:function (x)  
    .. .. ..$ test2_score:function (x)  
    ..$ preproc  : NULL
    ..$ postproc : NULL
  </code></pre>
  
  <p>It's not possible to just filter/subset the produced object as the structure contains other elements.</p>
  
  <p>Is there any way to output only the top n rows complete with the color scale that they would have if the whole table/dataframe was used ?</p>