title: Calculate Percentage Change in R using dplyr
body: <p>I want to calculate the percentage of <code>Profit</code> by <code>YEAR</code> which is a fairly simple task but somehow I am getting <code>NA</code>. I have checked same questions asked before but I'm not able to understand why I am getting <code>NA</code>. The data is as follows:</p>
  
  <pre><code>&gt; df_vertical_growth
     YEAR                        VERTICAL   Profit pct_change
  1  2017                     AGRICULTURE        0         NA
  2  2016                     AGRICULTURE  2053358         NA
  3  2015                     AGRICULTURE        0         NA
  4  2014                     AGRICULTURE  2370747         NA
  5  2013                     AGRICULTURE  4066693         NA
  6  2017                   COMMUNICATION        0         NA
  7  2016                   COMMUNICATION  1680074         NA
  8  2015                   COMMUNICATION  1322470         NA
  9  2014                   COMMUNICATION  1460133         NA
  10 2013                   COMMUNICATION  1529863         NA
  11 2017                    CONSTRUCTION        0         NA
  12 2016                    CONSTRUCTION        0         NA
  13 2015                    CONSTRUCTION        0         NA
  14 2014                    CONSTRUCTION  8250149         NA
  15 2013                    CONSTRUCTION        0         NA
  16 2017                       EDUCATION        0         NA
  17 2016                       EDUCATION 12497015         NA
  18 2015                       EDUCATION 13437356         NA
  19 2014                       EDUCATION 10856685         NA
  20 2013                       EDUCATION 13881127         NA
  21 2017 FINANCE, INSURANCE, REAL ESTATE        0         NA
  22 2016 FINANCE, INSURANCE, REAL ESTATE        0         NA
  23 2015 FINANCE, INSURANCE, REAL ESTATE        0         NA
  24 2014 FINANCE, INSURANCE, REAL ESTATE        0         NA
  25 2013 FINANCE, INSURANCE, REAL ESTATE  5008436         NA
  26 2017                      HEALTHCARE        0         NA
  27 2016                      HEALTHCARE        0         NA
  28 2015                      HEALTHCARE        0         NA
  29 2014                      HEALTHCARE  4554364         NA
  30 2013                      HEALTHCARE  5078130         NA
  31 2017                     HOSPITALITY        0         NA
  32 2016                     HOSPITALITY  4445512         NA
  33 2015                     HOSPITALITY  5499419         NA
  34 2014                     HOSPITALITY  9060639         NA
  35 2013                     HOSPITALITY  4391522         NA
  36 2017                   MANUFACTURING        0         NA
  37 2016                   MANUFACTURING        0         NA
  38 2015                   MANUFACTURING        0         NA
  39 2014                   MANUFACTURING        0         NA
  40 2013                   MANUFACTURING 27466974         NA
  41 2017                          MINING        0         NA
  42 2016                          MINING  4359251         NA
  43 2015                          MINING  4163201         NA
  44 2014                          MINING  6272530         NA
  45 2013                          MINING  6668191         NA
  46 2017                           OTHER        0         NA
  47 2016                           OTHER        0         NA
  48 2015                           OTHER        0         NA
  49 2014                           OTHER  5935199         NA
  50 2013                           OTHER  3585969         NA
  51 2017                    PUBLIC ADMIN        0         NA
  52 2016                    PUBLIC ADMIN        0         NA
  53 2015                    PUBLIC ADMIN        0         NA
  54 2014                    PUBLIC ADMIN        0         NA
  55 2013                    PUBLIC ADMIN        0         NA
  56 2017                    RETAIL TRADE        0         NA
  57 2016                    RETAIL TRADE        0         NA
  58 2015                    RETAIL TRADE        0         NA
  59 2014                    RETAIL TRADE        0         NA
  60 2013                    RETAIL TRADE        0         NA
  61 2017                         SERVICE        0         NA
  62 2016                         SERVICE        0         NA
  63 2015                         SERVICE        0         NA
  64 2014                         SERVICE        0         NA
  65 2013                         SERVICE 28018522         NA
  66 2017                  TRANSPORTATION        0         NA
  67 2016                  TRANSPORTATION        0         NA
  68 2015                  TRANSPORTATION        0         NA
  69 2014                  TRANSPORTATION        0         NA
  70 2013                  TRANSPORTATION  8430244         NA
  71 2017                         UTILITY        0         NA
  72 2016                         UTILITY  3551989         NA
  73 2015                         UTILITY  6535248         NA
  74 2014                         UTILITY  3995486         NA
  75 2013                         UTILITY  4477617         NA
  76 2017                 WHOLESALE TRADE        0         NA
  77 2016                 WHOLESALE TRADE  6898041         NA
  78 2015                 WHOLESALE TRADE  7120828         NA
  79 2014                 WHOLESALE TRADE        0         NA
  80 2013                 WHOLESALE TRADE        0         NA
  </code></pre>
  
  <p>My Code:</p>
  
  <pre><code>df_vertical_growth %&gt;% group_by(YEAR, VERTICAL) %&gt;% 
       mutate(pct_change = ((Profit/lag(Profit) - 1) * 100))
  </code></pre>
  
  <p>Now, based on the answers provided here <a href="https://stackoverflow.com/questions/31352685/how-can-i-calculate-the-percentage-change-within-a-group-for-multiple-columns-in">How can I calculate the percentage change within a group for multiple columns in R?</a>, also tried doing the following:</p>
  
  <pre><code>pct &lt;- function(x) {x / lag(x) - 1}
  df_vertical_growth %&gt;% group_by(YEAR, VERTICAL) %&gt;% mutate_at(funs=pct,Profit)
  </code></pre>
  
  <p>But I am getting following error:</p>
  
  <blockquote>
    <p>Error in check_dot_cols(.vars, .cols) : object 'Profit' not found</p>
  </blockquote>
  
  <p>Can someone please tell me, what am I doing wrong? Thanks a lot in advance.</p>