Calculate Growth Increase, grouping by Type (Using R)

To get the results you want, you need a different calculation in your mutate line:

I also added a filter to remove any results with NA for the percent_increase variable.

And finally added “`arrange“ to sort alphabetically by location to match the same order as your requested output.

CODE

z %>% group_by(type, location) %>% mutate( increase = (lead(size) – size), percent_increase = (increase/size) * 100, start_date = date, end_date = lead(date)) %>% filter(!is.na(percent_increase)) %>% arrange(location)

OUTPUT

# A tibble: 4 x 8
# Groups:   type, location [4]
  location  size type  date       increase percent_increase start_date end_date  
  <chr>    <int> <chr> <chr>         <int>            <dbl> <chr>      <chr>     
1 ca          15 cool  10/05/2020        1             6.67 10/05/2020 10/08/2020
2 ca          10 name  10/06/2020       -5           -50    10/06/2020 10/07/2020
3 ny           5 hello 10/01/2020        1            20    10/01/2020 10/04/2020
4 ny           7 ai    10/02/2020        1            14.3  10/02/2020 10/03/2020

INPUT

z <- structure(list(location = c("ny", "ny", "ny", "ny", "ca", "ca", 
"ca", "ca"), size = c(5L, 7L, 8L, 6L, 15L, 10L, 5L, 16L), type = c("hello", 
"ai", "ai", "hello", "cool", "name", "name", "cool"), date = c("10/01/2020", 
"10/02/2020", "10/03/2020", "10/04/2020", "10/05/2020", "10/06/2020", 
"10/07/2020", "10/08/2020")), class = "data.frame", row.names = c(NA, 
-8L))

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top