Import data

# excel file
palm <- read_excel("../00_data/palmtrees.xlsx")
palm
## # A tibble: 2,557 × 29
##    spec_name            acc_genus acc_species palm_tribe palm_subfamily climbing
##    <chr>                <chr>     <chr>       <chr>      <chr>          <chr>   
##  1 Acanthophoenix crin… Acanthop… crinita     Areceae    Arecoideae     climbing
##  2 Acanthophoenix rous… Acanthop… rousselii   Areceae    Arecoideae     climbing
##  3 Acanthophoenix rubra Acanthop… rubra       Areceae    Arecoideae     climbing
##  4 Acoelorrhaphe wrigh… Acoelorr… wrightii    Trachycar… Coryphoideae   climbing
##  5 Acrocomia aculeata   Acrocomia aculeata    Cocoseae   Arecoideae     climbing
##  6 Acrocomia crispa     Acrocomia crispa      Cocoseae   Arecoideae     climbing
##  7 Acrocomia emensis    Acrocomia emensis     Cocoseae   Arecoideae     climbing
##  8 Acrocomia glaucesce… Acrocomia glaucescens Cocoseae   Arecoideae     climbing
##  9 Acrocomia hassleri   Acrocomia hassleri    Cocoseae   Arecoideae     climbing
## 10 Acrocomia intumesce… Acrocomia intumescens Cocoseae   Arecoideae     climbing
## # ℹ 2,547 more rows
## # ℹ 23 more variables: acaulescent <chr>, erect <chr>, stem_solitary <chr>,
## #   stem_armed <chr>, leaves_armed <chr>, max_stem_height_m <dbl>,
## #   max_stem_dia_cm <dbl>, understorey_canopy <chr>, max_leaf_number <dbl>,
## #   max__blade__length_m <dbl>, max__rachis__length_m <dbl>,
## #   max__petiole_length_m <dbl>, average_fruit_length_cm <dbl>,
## #   min_fruit_length_cm <dbl>, max_fruit_length_cm <dbl>, …

Apply the following dplyr verbs to your data

Filter rows

filter(palm, max_stem_height_m == 10, max_stem_dia_cm == 1)
## # A tibble: 9 × 29
##   spec_name acc_genus acc_species palm_tribe palm_subfamily climbing acaulescent
##   <chr>     <chr>     <chr>       <chr>      <chr>          <chr>    <chr>      
## 1 Calamus … Calamus   compsostac… Calameae   Calamoideae    non-cli… acaulescent
## 2 Calamus … Calamus   conirostris Calameae   Calamoideae    non-cli… acaulescent
## 3 Calamus … Calamus   javensis    Calameae   Calamoideae    non-cli… acaulescent
## 4 Calamus … Calamus   kiahii      Calameae   Calamoideae    both     acaulescent
## 5 Calamus … Calamus   leloi       Calameae   Calamoideae    non-cli… acaulescent
## 6 Calamus … Calamus   microsphae… Calameae   Calamoideae    non-cli… acaulescent
## 7 Calamus … Calamus   ulur        Calameae   Calamoideae    non-cli… acaulescent
## 8 Calamus … Calamus   usitatus    Calameae   Calamoideae    non-cli… acaulescent
## 9 Daemonor… Daemonor… fissilis    Calameae   Calamoideae    non-cli… acaulescent
## # ℹ 22 more variables: erect <chr>, stem_solitary <chr>, stem_armed <chr>,
## #   leaves_armed <chr>, max_stem_height_m <dbl>, max_stem_dia_cm <dbl>,
## #   understorey_canopy <chr>, max_leaf_number <dbl>,
## #   max__blade__length_m <dbl>, max__rachis__length_m <dbl>,
## #   max__petiole_length_m <dbl>, average_fruit_length_cm <dbl>,
## #   min_fruit_length_cm <dbl>, max_fruit_length_cm <dbl>,
## #   average_fruit_width_cm <dbl>, min_fruit_width_cm <dbl>, …
filter(palm, max_stem_height_m %in% c(0, 2))
## # A tibble: 250 × 29
##    spec_name            acc_genus acc_species palm_tribe palm_subfamily climbing
##    <chr>                <chr>     <chr>       <chr>      <chr>          <chr>   
##  1 Acrocomia emensis    Acrocomia emensis     Cocoseae   Arecoideae     climbing
##  2 Acrocomia hassleri   Acrocomia hassleri    Cocoseae   Arecoideae     climbing
##  3 Aiphanes acaulis     Aiphanes  acaulis     Cocoseae   Arecoideae     climbing
##  4 Aiphanes deltoidea   Aiphanes  deltoidea   Cocoseae   Arecoideae     climbing
##  5 Aiphanes parvifolia  Aiphanes  parvifolia  Cocoseae   Arecoideae     climbing
##  6 Allagoptera brevica… Allagopt… brevicalyx  Cocoseae   Arecoideae     climbing
##  7 Allagoptera leucoca… Allagopt… leucocalyx  Cocoseae   Arecoideae     climbing
##  8 Areca furcata        Areca     furcata     Areceae    Arecoideae     climbing
##  9 Areca minuta         Areca     minuta      Areceae    Arecoideae     climbing
## 10 Areca oxycarpa       Areca     oxycarpa    Areceae    Arecoideae     climbing
## # ℹ 240 more rows
## # ℹ 23 more variables: acaulescent <chr>, erect <chr>, stem_solitary <chr>,
## #   stem_armed <chr>, leaves_armed <chr>, max_stem_height_m <dbl>,
## #   max_stem_dia_cm <dbl>, understorey_canopy <chr>, max_leaf_number <dbl>,
## #   max__blade__length_m <dbl>, max__rachis__length_m <dbl>,
## #   max__petiole_length_m <dbl>, average_fruit_length_cm <dbl>,
## #   min_fruit_length_cm <dbl>, max_fruit_length_cm <dbl>, …
filter(palm, acc_genus == "Arenga")
## # A tibble: 24 × 29
##    spec_name           acc_genus acc_species  palm_tribe palm_subfamily climbing
##    <chr>               <chr>     <chr>        <chr>      <chr>          <chr>   
##  1 Arenga australasica Arenga    australasica Caryoteae  Coryphoideae   climbing
##  2 Arenga brevipes     Arenga    brevipes     Caryoteae  Coryphoideae   climbing
##  3 Arenga caudata      Arenga    caudata      Caryoteae  Coryphoideae   climbing
##  4 Arenga distincta    Arenga    distincta    Caryoteae  Coryphoideae   climbing
##  5 Arenga engleri      Arenga    engleri      Caryoteae  Coryphoideae   climbing
##  6 Arenga hastata      Arenga    hastata      Caryoteae  Coryphoideae   climbing
##  7 Arenga hookeriana   Arenga    hookeriana   Caryoteae  Coryphoideae   climbing
##  8 Arenga listeri      Arenga    listeri      Caryoteae  Coryphoideae   climbing
##  9 Arenga longicarpa   Arenga    longicarpa   Caryoteae  Coryphoideae   climbing
## 10 Arenga longipes     Arenga    longipes     Caryoteae  Coryphoideae   climbing
## # ℹ 14 more rows
## # ℹ 23 more variables: acaulescent <chr>, erect <chr>, stem_solitary <chr>,
## #   stem_armed <chr>, leaves_armed <chr>, max_stem_height_m <dbl>,
## #   max_stem_dia_cm <dbl>, understorey_canopy <chr>, max_leaf_number <dbl>,
## #   max__blade__length_m <dbl>, max__rachis__length_m <dbl>,
## #   max__petiole_length_m <dbl>, average_fruit_length_cm <dbl>,
## #   min_fruit_length_cm <dbl>, max_fruit_length_cm <dbl>, …

Arrange rows

arrange(palm, desc (min_fruit_width_cm), desc(max__blade__length_m))
## # A tibble: 2,557 × 29
##    spec_name            acc_genus acc_species palm_tribe palm_subfamily climbing
##    <chr>                <chr>     <chr>       <chr>      <chr>          <chr>   
##  1 Phytelephas macroca… Phytelep… macrocarpa  Phyteleph… Ceroxyloideae  climbing
##  2 Phytelephas seemann… Phytelep… seemannii   Phyteleph… Ceroxyloideae  climbing
##  3 Metroxylon amicarum  Metroxyl… amicarum    Calameae   Calamoideae    climbing
##  4 Phytelephas tumacana Phytelep… tumacana    Phyteleph… Ceroxyloideae  climbing
##  5 Pholidocarpus macro… Pholidoc… macrocarpus Trachycar… Coryphoideae   climbing
##  6 Metroxylon sagu      Metroxyl… sagu        Calameae   Calamoideae    climbing
##  7 Cocos nucifera       Cocos     nucifera    Cocoseae   Arecoideae     climbing
##  8 Ammandra decasperma  Ammandra  decasperma  Phyteleph… Ceroxyloideae  climbing
##  9 Borassus heineanus   Borassus  heineanus   Borasseae  Coryphoideae   climbing
## 10 Attalea cuatrecasana Attalea   cuatrecasa… Cocoseae   Arecoideae     climbing
## # ℹ 2,547 more rows
## # ℹ 23 more variables: acaulescent <chr>, erect <chr>, stem_solitary <chr>,
## #   stem_armed <chr>, leaves_armed <chr>, max_stem_height_m <dbl>,
## #   max_stem_dia_cm <dbl>, understorey_canopy <chr>, max_leaf_number <dbl>,
## #   max__blade__length_m <dbl>, max__rachis__length_m <dbl>,
## #   max__petiole_length_m <dbl>, average_fruit_length_cm <dbl>,
## #   min_fruit_length_cm <dbl>, max_fruit_length_cm <dbl>, …

Select columns

select(palm, max_stem_height_m:max_fruit_length_cm)
## # A tibble: 2,557 × 10
##    max_stem_height_m max_stem_dia_cm understorey_canopy max_leaf_number
##                <dbl>           <dbl> <chr>                        <dbl>
##  1              10                20 canopy                          15
##  2              25                30 canopy                          NA
##  3              15                18 canopy                          20
##  4               9.1              15 canopy                          25
##  5              12                50 canopy                          30
##  6              18                35 canopy                          15
##  7               0                NA understorey                     NA
##  8              NA                NA <NA>                            NA
##  9               0                NA understorey                      6
## 10              NA                NA <NA>                            NA
## # ℹ 2,547 more rows
## # ℹ 6 more variables: max__blade__length_m <dbl>, max__rachis__length_m <dbl>,
## #   max__petiole_length_m <dbl>, average_fruit_length_cm <dbl>,
## #   min_fruit_length_cm <dbl>, max_fruit_length_cm <dbl>
select(palm, spec_name, max_stem_height_m, max_fruit_width_cm, fruit_size_categorical)
## # A tibble: 2,557 × 4
##    spec_name         max_stem_height_m max_fruit_width_cm fruit_size_categorical
##    <chr>                         <dbl>              <dbl> <chr>                 
##  1 Acanthophoenix c…              10                 NA   small                 
##  2 Acanthophoenix r…              25                 NA   small                 
##  3 Acanthophoenix r…              15                 NA   small                 
##  4 Acoelorrhaphe wr…               9.1                0.9 small                 
##  5 Acrocomia aculea…              12                  5.4 large                 
##  6 Acrocomia crispa               18                 NA   small                 
##  7 Acrocomia emensis               0                 NA   small                 
##  8 Acrocomia glauce…              NA                 NA   <NA>                  
##  9 Acrocomia hassle…               0                  3   small                 
## 10 Acrocomia intume…              NA                  5.4 large                 
## # ℹ 2,547 more rows
select(palm, spec_name, starts_with("max"), fruit_size_categorical)
## # A tibble: 2,557 × 10
##    spec_name                max_stem_height_m max_stem_dia_cm max_leaf_number
##    <chr>                                <dbl>           <dbl>           <dbl>
##  1 Acanthophoenix crinita                10                20              15
##  2 Acanthophoenix rousselii              25                30              NA
##  3 Acanthophoenix rubra                  15                18              20
##  4 Acoelorrhaphe wrightii                 9.1              15              25
##  5 Acrocomia aculeata                    12                50              30
##  6 Acrocomia crispa                      18                35              15
##  7 Acrocomia emensis                      0                NA              NA
##  8 Acrocomia glaucescens                 NA                NA              NA
##  9 Acrocomia hassleri                     0                NA               6
## 10 Acrocomia intumescens                 NA                NA              NA
## # ℹ 2,547 more rows
## # ℹ 6 more variables: max__blade__length_m <dbl>, max__rachis__length_m <dbl>,
## #   max__petiole_length_m <dbl>, max_fruit_length_cm <dbl>,
## #   max_fruit_width_cm <dbl>, fruit_size_categorical <chr>
select(palm, spec_name, contains("fruit"))
## # A tibble: 2,557 × 11
##    spec_name      average_fruit_length…¹ min_fruit_length_cm max_fruit_length_cm
##    <chr>                           <dbl>               <dbl>               <dbl>
##  1 Acanthophoeni…                   0.65                 0.6                 0.7
##  2 Acanthophoeni…                   2                   NA                  NA  
##  3 Acanthophoeni…                   1                   NA                  NA  
##  4 Acoelorrhaphe…                   0.7                 NA                  NA  
##  5 Acrocomia acu…                   4.25                 3.5                 5  
##  6 Acrocomia cri…                   2.5                 NA                  NA  
##  7 Acrocomia eme…                   2                   NA                  NA  
##  8 Acrocomia gla…                  NA                   NA                  NA  
##  9 Acrocomia has…                   2.25                 1.5                 3  
## 10 Acrocomia int…                   4.6                  3.8                 5.4
## # ℹ 2,547 more rows
## # ℹ abbreviated name: ¹​average_fruit_length_cm
## # ℹ 7 more variables: average_fruit_width_cm <dbl>, min_fruit_width_cm <dbl>,
## #   max_fruit_width_cm <dbl>, fruit_size_categorical <chr>, fruit_shape <chr>,
## #   fruit_color_description <chr>, main_fruit_colors <chr>
select(palm, spec_name, ends_with("m"), fruit_size_categorical)
## # A tibble: 2,557 × 13
##    spec_name              max_stem_height_m max_stem_dia_cm max__blade__length_m
##    <chr>                              <dbl>           <dbl>                <dbl>
##  1 Acanthophoenix crinita              10                20                  2.3
##  2 Acanthophoenix rousse…              25                30                  3  
##  3 Acanthophoenix rubra                15                18                  3.1
##  4 Acoelorrhaphe wrightii               9.1              15                  1.3
##  5 Acrocomia aculeata                  12                50                  3.5
##  6 Acrocomia crispa                    18                35                  3  
##  7 Acrocomia emensis                    0                NA                 NA  
##  8 Acrocomia glaucescens               NA                NA                 NA  
##  9 Acrocomia hassleri                   0                NA                  0.9
## 10 Acrocomia intumescens               NA                NA                 NA  
## # ℹ 2,547 more rows
## # ℹ 9 more variables: max__rachis__length_m <dbl>, max__petiole_length_m <dbl>,
## #   average_fruit_length_cm <dbl>, min_fruit_length_cm <dbl>,
## #   max_fruit_length_cm <dbl>, average_fruit_width_cm <dbl>,
## #   min_fruit_width_cm <dbl>, max_fruit_width_cm <dbl>,
## #   fruit_size_categorical <chr>

Add columns

mutate(palm,
       branch_length = max__rachis__length_m + max__petiole_length_m, na.rm  = TRUE) %>%
    select(spec_name, branch_length)
## # A tibble: 2,557 × 2
##    spec_name                branch_length
##    <chr>                            <dbl>
##  1 Acanthophoenix crinita           NA   
##  2 Acanthophoenix rousselii         NA   
##  3 Acanthophoenix rubra             NA   
##  4 Acoelorrhaphe wrightii            1.35
##  5 Acrocomia aculeata               NA   
##  6 Acrocomia crispa                 NA   
##  7 Acrocomia emensis                NA   
##  8 Acrocomia glaucescens            NA   
##  9 Acrocomia hassleri                1.05
## 10 Acrocomia intumescens            NA   
## # ℹ 2,547 more rows
# How do I properly use "na.rm"? I found "na.omit()" by searching google but could not find where to use the command in the chunk. 

Summarize by groups

summarise(palm, mean(max_stem_height_m, na.rm = TRUE))
## # A tibble: 1 × 1
##   `mean(max_stem_height_m, na.rm = TRUE)`
##                                     <dbl>
## 1                                    10.9