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