Load the Tidyverse Package

require(tidyverse)
## Loading required package: tidyverse
## -- Attaching packages ------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.2.1     v purrr   0.3.3
## v tibble  2.1.3     v dplyr   0.8.3
## v tidyr   1.0.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.4.0
## -- Conflicts ---------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()

Tidyverse::readr

  • Using readr to read in the csv file.
avengers<-read_csv("https://raw.githubusercontent.com/fivethirtyeight/data/master/avengers/avengers.csv",col_names = TRUE)
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   Appearances = col_double(),
##   Year = col_double(),
##   `Years since joining` = col_double()
## )
## See spec(...) for full column specifications.

Data used for this Assignment is from fivethirtyeight Avengers.csv https://github.com/fivethirtyeight/data/blob/master/avengers/avengers.csv

str(avengers)
## Classes 'spec_tbl_df', 'tbl_df', 'tbl' and 'data.frame': 173 obs. of  21 variables:
##  $ URL                        : chr  "http://marvel.wikia.com/Henry_Pym_(Earth-616)" "http://marvel.wikia.com/Janet_van_Dyne_(Earth-616)" "http://marvel.wikia.com/Anthony_Stark_(Earth-616)" "http://marvel.wikia.com/Robert_Bruce_Banner_(Earth-616)" ...
##  $ Name/Alias                 : chr  "Henry Jonathan \"Hank\" Pym" "Janet van Dyne" "Anthony Edward \"Tony\" Stark" "Robert Bruce Banner" ...
##  $ Appearances                : num  1269 1165 3068 2089 2402 ...
##  $ Current?                   : chr  "YES" "YES" "YES" "YES" ...
##  $ Gender                     : chr  "MALE" "FEMALE" "MALE" "MALE" ...
##  $ Probationary Introl        : chr  NA NA NA NA ...
##  $ Full/Reserve Avengers Intro: chr  "Sep-63" "Sep-63" "Sep-63" "Sep-63" ...
##  $ Year                       : num  1963 1963 1963 1963 1963 ...
##  $ Years since joining        : num  52 52 52 52 52 52 51 50 50 50 ...
##  $ Honorary                   : chr  "Full" "Full" "Full" "Full" ...
##  $ Death1                     : chr  "YES" "YES" "YES" "YES" ...
##  $ Return1                    : chr  "NO" "YES" "YES" "YES" ...
##  $ Death2                     : chr  NA NA NA NA ...
##  $ Return2                    : chr  NA NA NA NA ...
##  $ Death3                     : chr  NA NA NA NA ...
##  $ Return3                    : chr  NA NA NA NA ...
##  $ Death4                     : chr  NA NA NA NA ...
##  $ Return4                    : chr  NA NA NA NA ...
##  $ Death5                     : chr  NA NA NA NA ...
##  $ Return5                    : chr  NA NA NA NA ...
##  $ Notes                      : chr  "Merged with Ultron in Rage of Ultron Vol. 1. A funeral was held." "Dies in Secret Invasion V1:I8. Actually was sent tto Microverse later recovered" "Death: \"Later while under the influence of Immortus Stark committed a number of horrible acts and was killed.'"| __truncated__ "Dies in Ghosts of the Future arc. However \"he had actually used a hidden Pantheon base to survive\"" ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   URL = col_character(),
##   ..   `Name/Alias` = col_character(),
##   ..   Appearances = col_double(),
##   ..   `Current?` = col_character(),
##   ..   Gender = col_character(),
##   ..   `Probationary Introl` = col_character(),
##   ..   `Full/Reserve Avengers Intro` = col_character(),
##   ..   Year = col_double(),
##   ..   `Years since joining` = col_double(),
##   ..   Honorary = col_character(),
##   ..   Death1 = col_character(),
##   ..   Return1 = col_character(),
##   ..   Death2 = col_character(),
##   ..   Return2 = col_character(),
##   ..   Death3 = col_character(),
##   ..   Return3 = col_character(),
##   ..   Death4 = col_character(),
##   ..   Return4 = col_character(),
##   ..   Death5 = col_character(),
##   ..   Return5 = col_character(),
##   ..   Notes = col_character()
##   .. )

Tidyverse::dplyr - filter

  • Use filter to filter out the number of apperences that are over 1000
avengers_1000_over<-filter(avengers,Appearances>1000)
avengers_1000_over
## # A tibble: 20 x 21
##    URL   `Name/Alias` Appearances `Current?` Gender `Probationary I~
##    <chr> <chr>              <dbl> <chr>      <chr>  <chr>           
##  1 http~ "Henry Jona~        1269 YES        MALE   <NA>            
##  2 http~ Janet van D~        1165 YES        FEMALE <NA>            
##  3 http~ "Anthony Ed~        3068 YES        MALE   <NA>            
##  4 http~ Robert Bruc~        2089 YES        MALE   <NA>            
##  5 http~ Thor Odinson        2402 YES        MALE   <NA>            
##  6 http~ Steven Roge~        3458 YES        MALE   <NA>            
##  7 http~ Clinton Fra~        1456 YES        MALE   <NA>            
##  8 http~ Wanda Maxim~        1214 YES        FEMALE <NA>            
##  9 http~ Victor Shad~        1036 YES        MALE   <NA>            
## 10 http~ Natalia Ali~        1112 YES        FEMALE <NA>            
## 11 http~ Henry P. Mc~        1886 NO         MALE   Jul-75          
## 12 http~ Benjamin Ja~        2305 NO         MALE   <NA>            
## 13 http~ Namor McKen~        1561 NO         MALE   <NA>            
## 14 http~ Reed Richar~        2125 YES        MALE   <NA>            
## 15 http~ Susan Richa~        1761 NO         MALE   <NA>            
## 16 http~ Peter Benja~        4333 YES        MALE   <NA>            
## 17 http~ "James \"Lo~        3130 YES        MALE   <NA>            
## 18 http~ Doctor Step~        1324 NO         MALE   <NA>            
## 19 http~ Ororo Munroe        1598 NO         FEMALE <NA>            
## 20 http~ Matt Murdock        1375 NO         MALE   <NA>            
## # ... with 15 more variables: `Full/Reserve Avengers Intro` <chr>, Year <dbl>,
## #   `Years since joining` <dbl>, Honorary <chr>, Death1 <chr>, Return1 <chr>,
## #   Death2 <chr>, Return2 <chr>, Death3 <chr>, Return3 <chr>, Death4 <chr>,
## #   Return4 <chr>, Death5 <chr>, Return5 <chr>, Notes <chr>
  • Filter out the the Avengers that are Current
avengers_current<-filter(avengers_1000_over,`Current?`=="YES")
avengers_current
## # A tibble: 13 x 21
##    URL   `Name/Alias` Appearances `Current?` Gender `Probationary I~
##    <chr> <chr>              <dbl> <chr>      <chr>  <chr>           
##  1 http~ "Henry Jona~        1269 YES        MALE   <NA>            
##  2 http~ Janet van D~        1165 YES        FEMALE <NA>            
##  3 http~ "Anthony Ed~        3068 YES        MALE   <NA>            
##  4 http~ Robert Bruc~        2089 YES        MALE   <NA>            
##  5 http~ Thor Odinson        2402 YES        MALE   <NA>            
##  6 http~ Steven Roge~        3458 YES        MALE   <NA>            
##  7 http~ Clinton Fra~        1456 YES        MALE   <NA>            
##  8 http~ Wanda Maxim~        1214 YES        FEMALE <NA>            
##  9 http~ Victor Shad~        1036 YES        MALE   <NA>            
## 10 http~ Natalia Ali~        1112 YES        FEMALE <NA>            
## 11 http~ Reed Richar~        2125 YES        MALE   <NA>            
## 12 http~ Peter Benja~        4333 YES        MALE   <NA>            
## 13 http~ "James \"Lo~        3130 YES        MALE   <NA>            
## # ... with 15 more variables: `Full/Reserve Avengers Intro` <chr>, Year <dbl>,
## #   `Years since joining` <dbl>, Honorary <chr>, Death1 <chr>, Return1 <chr>,
## #   Death2 <chr>, Return2 <chr>, Death3 <chr>, Return3 <chr>, Death4 <chr>,
## #   Return4 <chr>, Death5 <chr>, Return5 <chr>, Notes <chr>

Tidyverse::dplyr - select

  • Here you can select the columns that you want from the table
avengers_new_table<-avengers_current%>%
  select(`Name/Alias`,Year,Gender,Appearances, `Years since joining`)
avengers_new_table
## # A tibble: 13 x 5
##    `Name/Alias`                     Year Gender Appearances `Years since joinin~
##    <chr>                           <dbl> <chr>        <dbl>                <dbl>
##  1 "Henry Jonathan \"Hank\" Pym"    1963 MALE          1269                   52
##  2 Janet van Dyne                   1963 FEMALE        1165                   52
##  3 "Anthony Edward \"Tony\" Stark"  1963 MALE          3068                   52
##  4 Robert Bruce Banner              1963 MALE          2089                   52
##  5 Thor Odinson                     1963 MALE          2402                   52
##  6 Steven Rogers                    1964 MALE          3458                   51
##  7 Clinton Francis Barton           1965 MALE          1456                   50
##  8 Wanda Maximoff                   1965 FEMALE        1214                   50
##  9 Victor Shade (alias)             1968 MALE          1036                   47
## 10 Natalia Alianovna Romanova       1973 FEMALE        1112                   42
## 11 Reed Richards                    1989 MALE          2125                   26
## 12 Peter Benjamin Parker            1990 MALE          4333                   25
## 13 "James \"Logan\" Howlett"        2005 MALE          3130                   10

Tidyverse::dplyr - arrange

  • Arrange the columns by the number of Appearances in Descending order
arrange(avengers_new_table,desc(Appearances))
## # A tibble: 13 x 5
##    `Name/Alias`                     Year Gender Appearances `Years since joinin~
##    <chr>                           <dbl> <chr>        <dbl>                <dbl>
##  1 Peter Benjamin Parker            1990 MALE          4333                   25
##  2 Steven Rogers                    1964 MALE          3458                   51
##  3 "James \"Logan\" Howlett"        2005 MALE          3130                   10
##  4 "Anthony Edward \"Tony\" Stark"  1963 MALE          3068                   52
##  5 Thor Odinson                     1963 MALE          2402                   52
##  6 Reed Richards                    1989 MALE          2125                   26
##  7 Robert Bruce Banner              1963 MALE          2089                   52
##  8 Clinton Francis Barton           1965 MALE          1456                   50
##  9 "Henry Jonathan \"Hank\" Pym"    1963 MALE          1269                   52
## 10 Wanda Maximoff                   1965 FEMALE        1214                   50
## 11 Janet van Dyne                   1963 FEMALE        1165                   52
## 12 Natalia Alianovna Romanova       1973 FEMALE        1112                   42
## 13 Victor Shade (alias)             1968 MALE          1036                   47

Tidyverse::dplyr - mutate with arrange

  • Calculate the Average of Appearances and Years since joining and arrange it by Appearances in descending order
avengers_new_table%>%
  mutate(Year_Over_Appearances= Appearances/`Years since joining`)%>%
  arrange(desc(Appearances))
## # A tibble: 13 x 6
##    `Name/Alias`      Year Gender Appearances `Years since joi~ Year_Over_Appear~
##    <chr>            <dbl> <chr>        <dbl>             <dbl>             <dbl>
##  1 Peter Benjamin ~  1990 MALE          4333                25             173. 
##  2 Steven Rogers     1964 MALE          3458                51              67.8
##  3 "James \"Logan\~  2005 MALE          3130                10             313  
##  4 "Anthony Edward~  1963 MALE          3068                52              59  
##  5 Thor Odinson      1963 MALE          2402                52              46.2
##  6 Reed Richards     1989 MALE          2125                26              81.7
##  7 Robert Bruce Ba~  1963 MALE          2089                52              40.2
##  8 Clinton Francis~  1965 MALE          1456                50              29.1
##  9 "Henry Jonathan~  1963 MALE          1269                52              24.4
## 10 Wanda Maximoff    1965 FEMALE        1214                50              24.3
## 11 Janet van Dyne    1963 FEMALE        1165                52              22.4
## 12 Natalia Alianov~  1973 FEMALE        1112                42              26.5
## 13 Victor Shade (a~  1968 MALE          1036                47              22.0