R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.5.3
## Warning: package 'ggplot2' was built under R version 4.5.3
## Warning: package 'dplyr' was built under R version 4.5.3
## Warning: package 'forcats' was built under R version 4.5.3
## Warning: package 'lubridate' was built under R version 4.5.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.1     ✔ readr     2.2.0
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Menyimpan URL raw data GitHub ke dalam variabel
url <- "https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-01/key_crop_yields.csv"

# Membaca data read_csv
df_crop <- read_csv(url)
## Rows: 13075 Columns: 14
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr  (2): Entity, Code
## dbl (12): Year, Wheat (tonnes per hectare), Rice (tonnes per hectare), Maize...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Melihat data
glimpse(df_crop)
## Rows: 13,075
## Columns: 14
## $ Entity                             <chr> "Afghanistan", "Afghanistan", "Afgh…
## $ Code                               <chr> "AFG", "AFG", "AFG", "AFG", "AFG", …
## $ Year                               <dbl> 1961, 1962, 1963, 1964, 1965, 1966,…
## $ `Wheat (tonnes per hectare)`       <dbl> 1.0220, 0.9735, 0.8317, 0.9510, 0.9…
## $ `Rice (tonnes per hectare)`        <dbl> 1.5190, 1.5190, 1.5190, 1.7273, 1.7…
## $ `Maize (tonnes per hectare)`       <dbl> 1.4000, 1.4000, 1.4260, 1.4257, 1.4…
## $ `Soybeans (tonnes per hectare)`    <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ `Potatoes (tonnes per hectare)`    <dbl> 8.6667, 7.6667, 8.1333, 8.6000, 8.8…
## $ `Beans (tonnes per hectare)`       <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ `Peas (tonnes per hectare)`        <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ `Cassava (tonnes per hectare)`     <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ `Barley (tonnes per hectare)`      <dbl> 1.0800, 1.0800, 1.0800, 1.0857, 1.0…
## $ `Cocoa beans (tonnes per hectare)` <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ `Bananas (tonnes per hectare)`     <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA,…

1. Menampilkan kolom Entity, Year, Potatoes, dan Cassava saja

df_crop %>%
select(Entity, Year, `Potatoes (tonnes per hectare)`, `Cassava (tonnes per hectare)`)
## # A tibble: 13,075 × 4
##    Entity       Year `Potatoes (tonnes per hectare)` Cassava (tonnes per hecta…¹
##    <chr>       <dbl>                           <dbl>                       <dbl>
##  1 Afghanistan  1961                            8.67                          NA
##  2 Afghanistan  1962                            7.67                          NA
##  3 Afghanistan  1963                            8.13                          NA
##  4 Afghanistan  1964                            8.6                           NA
##  5 Afghanistan  1965                            8.8                           NA
##  6 Afghanistan  1966                            9.07                          NA
##  7 Afghanistan  1967                            9.8                           NA
##  8 Afghanistan  1968                           10                             NA
##  9 Afghanistan  1969                           10.2                           NA
## 10 Afghanistan  1970                            9.54                          NA
## # ℹ 13,065 more rows
## # ℹ abbreviated name: ¹​`Cassava (tonnes per hectare)`

2. Menghapus kolom Soybeans, Beans, dan Peas dari data

df_crop %>%
select(-`Soybeans (tonnes per hectare)`,
       -`Beans (tonnes per hectare)`,
       -`Peas (tonnes per hectare)`)
## # A tibble: 13,075 × 11
##    Entity      Code   Year `Wheat (tonnes per hectare)` Rice (tonnes per hecta…¹
##    <chr>       <chr> <dbl>                        <dbl>                    <dbl>
##  1 Afghanistan AFG    1961                        1.02                      1.52
##  2 Afghanistan AFG    1962                        0.974                     1.52
##  3 Afghanistan AFG    1963                        0.832                     1.52
##  4 Afghanistan AFG    1964                        0.951                     1.73
##  5 Afghanistan AFG    1965                        0.972                     1.73
##  6 Afghanistan AFG    1966                        0.867                     1.52
##  7 Afghanistan AFG    1967                        1.12                      1.92
##  8 Afghanistan AFG    1968                        1.16                      1.95
##  9 Afghanistan AFG    1969                        1.19                      1.98
## 10 Afghanistan AFG    1970                        0.956                     1.81
## # ℹ 13,065 more rows
## # ℹ abbreviated name: ¹​`Rice (tonnes per hectare)`
## # ℹ 6 more variables: `Maize (tonnes per hectare)` <dbl>,
## #   `Potatoes (tonnes per hectare)` <dbl>,
## #   `Cassava (tonnes per hectare)` <dbl>, `Barley (tonnes per hectare)` <dbl>,
## #   `Cocoa beans (tonnes per hectare)` <dbl>,
## #   `Bananas (tonnes per hectare)` <dbl>

3. Tahun berapa saja hasil panen padi (Rice) di Indonesia kurang dari 2 ton

df_crop %>%
filter(Entity == "Indonesia" & `Rice (tonnes per hectare)` < 2) %>%
select(Year)
## # A tibble: 7 × 1
##    Year
##   <dbl>
## 1  1961
## 2  1962
## 3  1963
## 4  1964
## 5  1965
## 6  1966
## 7  1967

4. Negara apa saja yang memiliki hasil gandum (Wheat) lebih dari 5 ton setelah tahun 2000

df_crop %>%
filter(Year > 2000,
       `Wheat (tonnes per hectare)` > 5) %>%
distinct(Entity)
## # A tibble: 35 × 1
##    Entity         
##    <chr>          
##  1 Austria        
##  2 Belgium        
##  3 Bulgaria       
##  4 Central America
##  5 Chile          
##  6 China          
##  7 Croatia        
##  8 Czech Republic 
##  9 Denmark        
## 10 Eastern Asia   
## # ℹ 25 more rows

5. Menampilkan data Indonesia dan Malaysia pada tahun 2015

df_crop %>%
filter(Entity %in% c("Indonesia", "Malaysia")) %>%
filter(Year == 2015)
## # A tibble: 2 × 14
##   Entity    Code   Year `Wheat (tonnes per hectare)` `Rice (tonnes per hectare)`
##   <chr>     <chr> <dbl>                        <dbl>                       <dbl>
## 1 Indonesia IDN    2015                           NA                        5.34
## 2 Malaysia  MYS    2015                           NA                        4.02
## # ℹ 9 more variables: `Maize (tonnes per hectare)` <dbl>,
## #   `Soybeans (tonnes per hectare)` <dbl>,
## #   `Potatoes (tonnes per hectare)` <dbl>, `Beans (tonnes per hectare)` <dbl>,
## #   `Peas (tonnes per hectare)` <dbl>, `Cassava (tonnes per hectare)` <dbl>,
## #   `Barley (tonnes per hectare)` <dbl>,
## #   `Cocoa beans (tonnes per hectare)` <dbl>,
## #   `Bananas (tonnes per hectare)` <dbl>

6. Negara dengan hasil jagung (Maize) paling rendah pada tahun 2020

df_crop %>%
filter(Year == 2020) %>%
arrange(`Maize (tonnes per hectare)`) %>%
head(1) %>%
select(Entity)
## # A tibble: 0 × 1
## # ℹ 1 variable: Entity <chr>

Karena data tahun 2020 tidak tersedia

unique(df_crop$Year)
##  [1] 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975
## [16] 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990
## [31] 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005
## [46] 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018

7. Mengurutkan data Indonesia berdasarkan hasil kentang (Potatoes) tertinggi

df_crop %>%
filter(Entity == "Indonesia") %>%
arrange(-`Potatoes (tonnes per hectare)`)
## # A tibble: 58 × 14
##    Entity    Code   Year `Wheat (tonnes per hectare)` Rice (tonnes per hectare…¹
##    <chr>     <chr> <dbl>                        <dbl>                      <dbl>
##  1 Indonesia IDN    2018                           NA                       5.19
##  2 Indonesia IDN    2016                           NA                       5.24
##  3 Indonesia IDN    2015                           NA                       5.34
##  4 Indonesia IDN    2014                           NA                       5.13
##  5 Indonesia IDN    2006                           NA                       4.62
##  6 Indonesia IDN    2008                           NA                       4.89
##  7 Indonesia IDN    1995                           NA                       4.35
##  8 Indonesia IDN    2012                           NA                       5.14
##  9 Indonesia IDN    2009                           NA                       5.00
## 10 Indonesia IDN    2005                           NA                       4.57
## # ℹ 48 more rows
## # ℹ abbreviated name: ¹​`Rice (tonnes per hectare)`
## # ℹ 9 more variables: `Maize (tonnes per hectare)` <dbl>,
## #   `Soybeans (tonnes per hectare)` <dbl>,
## #   `Potatoes (tonnes per hectare)` <dbl>, `Beans (tonnes per hectare)` <dbl>,
## #   `Peas (tonnes per hectare)` <dbl>, `Cassava (tonnes per hectare)` <dbl>,
## #   `Barley (tonnes per hectare)` <dbl>, …

8. Membuat kolom Rice_Status dengan kategori “Tinggi” dan “Rendah”

df_crop %>%
mutate(Rice_Status = ifelse(`Rice (tonnes per hectare)` > 4,
                            "Tinggi",
                            "Rendah"))
## # A tibble: 13,075 × 15
##    Entity      Code   Year `Wheat (tonnes per hectare)` Rice (tonnes per hecta…¹
##    <chr>       <chr> <dbl>                        <dbl>                    <dbl>
##  1 Afghanistan AFG    1961                        1.02                      1.52
##  2 Afghanistan AFG    1962                        0.974                     1.52
##  3 Afghanistan AFG    1963                        0.832                     1.52
##  4 Afghanistan AFG    1964                        0.951                     1.73
##  5 Afghanistan AFG    1965                        0.972                     1.73
##  6 Afghanistan AFG    1966                        0.867                     1.52
##  7 Afghanistan AFG    1967                        1.12                      1.92
##  8 Afghanistan AFG    1968                        1.16                      1.95
##  9 Afghanistan AFG    1969                        1.19                      1.98
## 10 Afghanistan AFG    1970                        0.956                     1.81
## # ℹ 13,065 more rows
## # ℹ abbreviated name: ¹​`Rice (tonnes per hectare)`
## # ℹ 10 more variables: `Maize (tonnes per hectare)` <dbl>,
## #   `Soybeans (tonnes per hectare)` <dbl>,
## #   `Potatoes (tonnes per hectare)` <dbl>, `Beans (tonnes per hectare)` <dbl>,
## #   `Peas (tonnes per hectare)` <dbl>, `Cassava (tonnes per hectare)` <dbl>,
## #   `Barley (tonnes per hectare)` <dbl>, …

9. Menghitung rata-rata hasil panen pisang (Bananas) di Indonesia

df_crop %>%
filter(Entity == "Indonesia") %>%
summarise(`Rata-rata pisang Indonesia` =
mean(`Bananas (tonnes per hectare)`, na.rm = TRUE))
## # A tibble: 1 × 1
##   `Rata-rata pisang Indonesia`
##                          <dbl>
## 1                         30.5

10. Menampilkan data jagung mulai tahun 2010 dan menghitung simpangan baku tiap negara

df_crop %>%
filter(Year >= 2010) %>%
group_by(Entity) %>%
summarise(`SD Maize` =
sd(`Maize (tonnes per hectare)`, na.rm = TRUE)) %>%
arrange(desc(`SD Maize`))
## # A tibble: 242 × 2
##    Entity                           `SD Maize`
##    <chr>                                 <dbl>
##  1 Kuwait                                 9.24
##  2 United Arab Emirates                   9.19
##  3 Jordan                                 7.03
##  4 Israel                                 4.80
##  5 Saint Vincent and the Grenadines       2.89
##  6 Qatar                                  2.74
##  7 French Guiana                          2.50
##  8 New Caledonia                          2.29
##  9 Slovakia                               1.68
## 10 Oman                                   1.61
## # ℹ 232 more rows