title: put last 3 non NAs from each column into list while maintaining columns
body: <p>I've got a df1 like this:</p>
  
  <pre><code>Date &lt;-c("12/10/17","12/11/17","12/12/17","12/13/17","12/14/17","12/15/17","12/16/17")
  Ben &lt;- c(1294,NA,8959,2345,NA,0303,NA)
  James &lt;- c(NA,4523,3246,NA,NA,NA,NA)
  Alex &lt;- c(3754,1122,5582,NA,2910,NA,NA)
  df1 &lt;- data.frame(Date,Ben,James,Alex)`
  
  #df1
  Date          Ben     James     Alex
  12/10/17      1294    NA        3754
  12/11/17      NA      4523      1122
  12/12/17      8959    3246      5582
  12/13/17      2345    NA        NA
  12/14/17      NA      NA        2910
  12/15/17      0303    NA      NA
  12/16/17      NA      NA      NA
  </code></pre>
  
  <p>I'd like to get a list that takes the last 3 non NA values from each column and maintains their columns. If there are less than 3 non NA values in the column, it lists what is there, so columns may be of unequal lengths:</p>
  
  <pre><code>Ben     James     Alex
  8959    4523      1122
  2345    3246      5582
  0303              2910  
  </code></pre>
  
  <p>This gets the last 3, but puts them all in one uncategorized vector:</p>
  
  <pre><code>c(sapply(df[-1], function(x) sprintf("%s", tail(x[!is.na(x)], 3))))
  </code></pre>