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:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

#install.packages("tidyverse")
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 'tibble' was built under R version 4.5.3
## Warning: package 'tidyr' was built under R version 4.5.3
## Warning: package 'readr' was built under R version 4.5.3
## Warning: package 'purrr' was built under R version 4.5.3
## Warning: package 'dplyr' was built under R version 4.5.3
## Warning: package 'stringr' 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.3     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ tidyr     1.3.2
## ✔ purrr     1.2.2     
## ── 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

#github untuk buat nyari data

# 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,…
df_crop$Entity <- as.factor(df_crop$Entity)
df_crop$Code <- as.factor(df_crop$Code)
#Periksa apakah ada perubahan
glimpse(df_crop)
## Rows: 13,075
## Columns: 14
## $ Entity                             <fct> "Afghanistan", "Afghanistan", "Afgh…
## $ Code                               <fct> AFG, AFG, 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,…

#gunakan syntax ini untu soal no 1

data_select <- select(df_crop, Entity, Year, `Wheat (tonnes per hectare)`)
data_select
## # A tibble: 13,075 × 3
##    Entity       Year `Wheat (tonnes per hectare)`
##    <fct>       <dbl>                        <dbl>
##  1 Afghanistan  1961                        1.02 
##  2 Afghanistan  1962                        0.974
##  3 Afghanistan  1963                        0.832
##  4 Afghanistan  1964                        0.951
##  5 Afghanistan  1965                        0.972
##  6 Afghanistan  1966                        0.867
##  7 Afghanistan  1967                        1.12 
##  8 Afghanistan  1968                        1.16 
##  9 Afghanistan  1969                        1.19 
## 10 Afghanistan  1970                        0.956
## # ℹ 13,065 more rows
select(df_crop, 1:4)
## # A tibble: 13,075 × 4
##    Entity      Code   Year `Wheat (tonnes per hectare)`
##    <fct>       <fct> <dbl>                        <dbl>
##  1 Afghanistan AFG    1961                        1.02 
##  2 Afghanistan AFG    1962                        0.974
##  3 Afghanistan AFG    1963                        0.832
##  4 Afghanistan AFG    1964                        0.951
##  5 Afghanistan AFG    1965                        0.972
##  6 Afghanistan AFG    1966                        0.867
##  7 Afghanistan AFG    1967                        1.12 
##  8 Afghanistan AFG    1968                        1.16 
##  9 Afghanistan AFG    1969                        1.19 
## 10 Afghanistan AFG    1970                        0.956
## # ℹ 13,065 more rows
select(df_crop, -c(`Entity`, `Year`))
## # A tibble: 13,075 × 12
##    Code  Wheat (tonnes per hecta…¹ Rice (tonnes per hec…² Maize (tonnes per he…³
##    <fct>                     <dbl>                  <dbl>                  <dbl>
##  1 AFG                       1.02                    1.52                   1.4 
##  2 AFG                       0.974                   1.52                   1.4 
##  3 AFG                       0.832                   1.52                   1.43
##  4 AFG                       0.951                   1.73                   1.43
##  5 AFG                       0.972                   1.73                   1.44
##  6 AFG                       0.867                   1.52                   1.44
##  7 AFG                       1.12                    1.92                   1.41
##  8 AFG                       1.16                    1.95                   1.71
##  9 AFG                       1.19                    1.98                   1.72
## 10 AFG                       0.956                   1.81                   1.48
## # ℹ 13,065 more rows
## # ℹ abbreviated names: ¹​`Wheat (tonnes per hectare)`,
## #   ²​`Rice (tonnes per hectare)`, ³​`Maize (tonnes per hectare)`
## # ℹ 8 more variables: `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>, …
select(df_crop, contains("(tonnes per hectare)"))
## # A tibble: 13,075 × 11
##    `Wheat (tonnes per hectare)` Rice (tonnes per hectar…¹ Maize (tonnes per he…²
##                           <dbl>                     <dbl>                  <dbl>
##  1                        1.02                       1.52                   1.4 
##  2                        0.974                      1.52                   1.4 
##  3                        0.832                      1.52                   1.43
##  4                        0.951                      1.73                   1.43
##  5                        0.972                      1.73                   1.44
##  6                        0.867                      1.52                   1.44
##  7                        1.12                       1.92                   1.41
##  8                        1.16                       1.95                   1.71
##  9                        1.19                       1.98                   1.72
## 10                        0.956                      1.81                   1.48
## # ℹ 13,065 more rows
## # ℹ abbreviated names: ¹​`Rice (tonnes per hectare)`,
## #   ²​`Maize (tonnes per hectare)`
## # ℹ 8 more variables: `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>, …
#tidak perlu lagi menyebut nama data di dalam select
#data df_crop dan kemudian dipilih 1-3 kolom pertama dan kemudian dipilih yang bertipe numerik 
df_crop %>% select(1:3) %>% select(where(is.numeric)) 
## # A tibble: 13,075 × 1
##     Year
##    <dbl>
##  1  1961
##  2  1962
##  3  1963
##  4  1964
##  5  1965
##  6  1966
##  7  1967
##  8  1968
##  9  1969
## 10  1970
## # ℹ 13,065 more rows
#data_filter berisi data yang telah disaring untuk Entity dari Indonesia
data_filter<-filter(df_crop, Entity=="Indonesia")
data_filter
## # A tibble: 58 × 14
##    Entity    Code   Year `Wheat (tonnes per hectare)` Rice (tonnes per hectare…¹
##    <fct>     <fct> <dbl>                        <dbl>                      <dbl>
##  1 Indonesia IDN    1961                           NA                       1.76
##  2 Indonesia IDN    1962                           NA                       1.79
##  3 Indonesia IDN    1963                           NA                       1.72
##  4 Indonesia IDN    1964                           NA                       1.76
##  5 Indonesia IDN    1965                           NA                       1.77
##  6 Indonesia IDN    1966                           NA                       1.77
##  7 Indonesia IDN    1967                           NA                       1.76
##  8 Indonesia IDN    1968                           NA                       2.14
##  9 Indonesia IDN    1969                           NA                       2.25
## 10 Indonesia IDN    1970                           NA                       2.38
## # ℹ 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>, …
filter(df_crop, !is.na(`Wheat (tonnes per hectare)`))
## # A tibble: 8,101 × 14
##    Entity      Code   Year `Wheat (tonnes per hectare)` Rice (tonnes per hecta…¹
##    <fct>       <fct> <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
## # ℹ 8,091 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>, …
filter(df_crop,Code=="IDN" , Year > 2000, `Bananas (tonnes per hectare)` <50 )
## # A tibble: 1 × 14
##   Entity    Code   Year `Wheat (tonnes per hectare)` `Rice (tonnes per hectare)`
##   <fct>     <fct> <dbl>                        <dbl>                       <dbl>
## 1 Indonesia IDN    2003                           NA                        4.54
## # ℹ 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>
#mengurutkan data berdasarkan Year secara menaik dan annual salary menurun 
arrange(df_crop, Year, desc(`Rice (tonnes per hectare)`))
## # A tibble: 13,075 × 14
##    Entity              Code   Year Wheat (tonnes per he…¹ Rice (tonnes per hec…²
##    <fct>               <fct> <dbl>                  <dbl>                  <dbl>
##  1 Puerto Rico         PRI    1961                 NA                       6.44
##  2 Spain               ESP    1961                  0.884                   6.36
##  3 Australia           AUS    1961                  1.13                    5.9 
##  4 Australia & New Ze… <NA>   1961                  1.16                    5.9 
##  5 Italy               ITA    1961                  1.91                    5.68
##  6 Southern Europe     <NA>   1961                  1.40                    5.42
##  7 Egypt               EGY    1961                  2.47                    5.05
##  8 Northern Africa     <NA>   1961                  0.696                   4.98
##  9 European Union      <NA>   1961                  1.86                    4.95
## 10 Japan               JPN    1961                  2.75                    4.88
## # ℹ 13,065 more rows
## # ℹ abbreviated names: ¹​`Wheat (tonnes per hectare)`,
## #   ²​`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>, …
#Menghasilkan kolom baru bernama Wheat (kg per hectare)
mutate(df_crop, `Wheat (kg per hectare)` = `Wheat (tonnes per hectare)` * 1000)
## # A tibble: 13,075 × 15
##    Entity      Code   Year `Wheat (tonnes per hectare)` Rice (tonnes per hecta…¹
##    <fct>       <fct> <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>, …
df_crop %>% 
  mutate(Wheat_Status = ifelse(`Wheat (tonnes per hectare)` > 1, "Lebih dari 1", "Kurang dari 1")) %>% select(Code,Year,Wheat_Status)
## # A tibble: 13,075 × 3
##    Code   Year Wheat_Status 
##    <fct> <dbl> <chr>        
##  1 AFG    1961 Lebih dari 1 
##  2 AFG    1962 Kurang dari 1
##  3 AFG    1963 Kurang dari 1
##  4 AFG    1964 Kurang dari 1
##  5 AFG    1965 Kurang dari 1
##  6 AFG    1966 Kurang dari 1
##  7 AFG    1967 Lebih dari 1 
##  8 AFG    1968 Lebih dari 1 
##  9 AFG    1969 Lebih dari 1 
## 10 AFG    1970 Kurang dari 1
## # ℹ 13,065 more rows
#ada dua summarise yang ingin dihasilkan
#gunakan na.rm = TRUE untuk meremove atau membuang nilai yang hilang
df_sum <- summarise(df_crop, 
                    `maksimum Wheat` = max(`Wheat (tonnes per hectare)`, na.rm = TRUE), 
                    `maksimum Rice` = max(`Rice (tonnes per hectare)`, na.rm = TRUE))
df_sum
## # A tibble: 1 × 2
##   `maksimum Wheat` `maksimum Rice`
##              <dbl>           <dbl>
## 1             10.7            10.7
#Memilih beberapa kolom awal, Mengelompokkan, kemudian menghitung rata rata, menyaring yang tidak kosong, menambahkan kolom baru, mengurutkan 
df_crop %>% 
  select(1:4) %>%
  group_by(Code) %>% 
  summarise(`Mean Wheat (tonnes per hectare)` = mean(`Wheat (tonnes per hectare)`)) %>%
  filter(!is.na(`Mean Wheat (tonnes per hectare)`))  %>%
  mutate(`Mean Wheat (kg per hectare)` = `Mean Wheat (tonnes per hectare)` * 1000) %>%
  arrange(desc(`Mean Wheat (kg per hectare)`))
## # A tibble: 118 × 3
##    Code  `Mean Wheat (tonnes per hectare)` `Mean Wheat (kg per hectare)`
##    <fct>                             <dbl>                         <dbl>
##  1 BEL                                8.54                         8544.
##  2 NLD                                7.03                         7030.
##  3 IRL                                6.83                         6830.
##  4 GBR                                6.37                         6366.
##  5 DNK                                6.18                         6175.
##  6 LUX                                5.98                         5977.
##  7 DEU                                5.89                         5894.
##  8 FRA                                5.65                         5645.
##  9 NZL                                5.36                         5358.
## 10 SWE                                5.18                         5179.
## # ℹ 108 more rows
#Membuat tabel
# Tabel 1 Kualitas
tb_kualitas <- tibble(
  id_stasiun = c("ST01", "ST02", "ST03", "ST04"),
  tahun = c(2022, 2022, 2023, 2023),
  ph_air = c(6.5, 5.8, 7.0, 4.5),
  do_mg_l = c(5.2, 4.1, 6.5, 2.5)
)
# Tabel 2 Lokasi
tb_lokasi <- tibble(
  id_stasiun = c("ST01", "ST02", "ST05", "ST06"),
  tahun = c(2022, 2023, 2022, 2023), # ST02 beda tahun dengan tb_kualitas
  tipe_lahan = c("Gambut", "Lahan Basah", "Sungai", "Danau"),
  status_ekologi = c("Aman", "Waspada", "Aman", "Bahaya")
)
tb_kualitas
## # A tibble: 4 × 4
##   id_stasiun tahun ph_air do_mg_l
##   <chr>      <dbl>  <dbl>   <dbl>
## 1 ST01        2022    6.5     5.2
## 2 ST02        2022    5.8     4.1
## 3 ST03        2023    7       6.5
## 4 ST04        2023    4.5     2.5
tb_lokasi
## # A tibble: 4 × 4
##   id_stasiun tahun tipe_lahan  status_ekologi
##   <chr>      <dbl> <chr>       <chr>         
## 1 ST01        2022 Gambut      Aman          
## 2 ST02        2023 Lahan Basah Waspada       
## 3 ST05        2022 Sungai      Aman          
## 4 ST06        2023 Danau       Bahaya
left_join(tb_kualitas, tb_lokasi, by = "id_stasiun")
## # A tibble: 4 × 7
##   id_stasiun tahun.x ph_air do_mg_l tahun.y tipe_lahan  status_ekologi
##   <chr>        <dbl>  <dbl>   <dbl>   <dbl> <chr>       <chr>         
## 1 ST01          2022    6.5     5.2    2022 Gambut      Aman          
## 2 ST02          2022    5.8     4.1    2023 Lahan Basah Waspada       
## 3 ST03          2023    7       6.5      NA <NA>        <NA>          
## 4 ST04          2023    4.5     2.5      NA <NA>        <NA>
right_join(tb_kualitas, tb_lokasi, by = "id_stasiun")
## # A tibble: 4 × 7
##   id_stasiun tahun.x ph_air do_mg_l tahun.y tipe_lahan  status_ekologi
##   <chr>        <dbl>  <dbl>   <dbl>   <dbl> <chr>       <chr>         
## 1 ST01          2022    6.5     5.2    2022 Gambut      Aman          
## 2 ST02          2022    5.8     4.1    2023 Lahan Basah Waspada       
## 3 ST05            NA   NA      NA      2022 Sungai      Aman          
## 4 ST06            NA   NA      NA      2023 Danau       Bahaya
inner_join(tb_kualitas, tb_lokasi, by = "id_stasiun")
## # A tibble: 2 × 7
##   id_stasiun tahun.x ph_air do_mg_l tahun.y tipe_lahan  status_ekologi
##   <chr>        <dbl>  <dbl>   <dbl>   <dbl> <chr>       <chr>         
## 1 ST01          2022    6.5     5.2    2022 Gambut      Aman          
## 2 ST02          2022    5.8     4.1    2023 Lahan Basah Waspada
full_join(tb_kualitas, tb_lokasi, by = "id_stasiun")
## # A tibble: 6 × 7
##   id_stasiun tahun.x ph_air do_mg_l tahun.y tipe_lahan  status_ekologi
##   <chr>        <dbl>  <dbl>   <dbl>   <dbl> <chr>       <chr>         
## 1 ST01          2022    6.5     5.2    2022 Gambut      Aman          
## 2 ST02          2022    5.8     4.1    2023 Lahan Basah Waspada       
## 3 ST03          2023    7       6.5      NA <NA>        <NA>          
## 4 ST04          2023    4.5     2.5      NA <NA>        <NA>          
## 5 ST05            NA   NA      NA      2022 Sungai      Aman          
## 6 ST06            NA   NA      NA      2023 Danau       Bahaya
inner_join(tb_kualitas, tb_lokasi, by = c("id_stasiun", "tahun"))
## # A tibble: 1 × 6
##   id_stasiun tahun ph_air do_mg_l tipe_lahan status_ekologi
##   <chr>      <dbl>  <dbl>   <dbl> <chr>      <chr>         
## 1 ST01        2022    6.5     5.2 Gambut     Aman

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

select(df_crop, 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…¹
##    <fct>       <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.Mengeliminasi kolom Soybeans, Beans, dan Peas dari tabel.

select(df_crop,-c(`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…¹
##    <fct>       <fct> <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 yang nilainya di bawah 2 ton?

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

#4.Negara apa saja yang punya hasil gandum (Wheat) di atas 5 ton pada tahun 2000 ke atas?

filter(df_crop,Year > 2000,`Wheat (tonnes per hectare)` > 5) %>%
select(Entity,Year,`Wheat (tonnes per hectare)`)
## # A tibble: 406 × 3
##    Entity   Year `Wheat (tonnes per hectare)`
##    <fct>   <dbl>                        <dbl>
##  1 Austria  2001                         5.24
##  2 Austria  2004                         5.92
##  3 Austria  2005                         5.03
##  4 Austria  2008                         5.69
##  5 Austria  2010                         5.01
##  6 Austria  2011                         5.85
##  7 Austria  2013                         5.37
##  8 Austria  2014                         5.92
##  9 Austria  2015                         5.70
## 10 Austria  2016                         6.25
## # ℹ 396 more rows

#5.Bagaimana cara memunculkan data negara Indonesia dan Malaysia khusus untuk tahun 2015 saja?

filter(df_crop,Entity %in% c("Indonesia", "Malaysia"),Year == 2015) %>%
select(Entity, Year)
## # A tibble: 2 × 2
##   Entity     Year
##   <fct>     <dbl>
## 1 Indonesia  2015
## 2 Malaysia   2015

#6.Negara mana yang punya hasil jagung (Maize) paling rendah di tahun 2020?

head(arrange(filter(df_crop, Year == 2020),
             `Maize (tonnes per hectare)`),1)
## # A tibble: 0 × 14
## # ℹ 14 variables: Entity <fct>, Code <fct>, Year <dbl>,
## #   Wheat (tonnes per hectare) <dbl>, Rice (tonnes per hectare) <dbl>,
## #   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>

#7.Mengurutkan data Indonesia dari hasil kentang (Potatoes) yang paling tinggi.

arrange(filter(df_crop, Entity == "Indonesia"),
        desc(`Potatoes (tonnes per hectare)`)) %>%
select(Entity,
       Year,
       `Potatoes (tonnes per hectare)`)
## # A tibble: 58 × 3
##    Entity     Year `Potatoes (tonnes per hectare)`
##    <fct>     <dbl>                           <dbl>
##  1 Indonesia  2018                            18.7
##  2 Indonesia  2016                            18.3
##  3 Indonesia  2015                            18.2
##  4 Indonesia  2014                            17.7
##  5 Indonesia  2006                            16.9
##  6 Indonesia  2008                            16.7
##  7 Indonesia  1995                            16.6
##  8 Indonesia  2012                            16.6
##  9 Indonesia  2009                            16.5
## 10 Indonesia  2005                            16.4
## # ℹ 48 more rows

#8.Membuat kolom Rice_Status berisi teks “Tinggi” jika padi > 4 ton, dan “Rendah” jika di bawahnya.

df_crop %>% 
 mutate(Rice_Status = ifelse(`Rice (tonnes per hectare)` > 4,
                             "Tinggi",
                             "Rendah")) %>%
 select(Code,Year,Rice_Status)
## # A tibble: 13,075 × 3
##    Code   Year Rice_Status
##    <fct> <dbl> <chr>      
##  1 AFG    1961 Rendah     
##  2 AFG    1962 Rendah     
##  3 AFG    1963 Rendah     
##  4 AFG    1964 Rendah     
##  5 AFG    1965 Rendah     
##  6 AFG    1966 Rendah     
##  7 AFG    1967 Rendah     
##  8 AFG    1968 Rendah     
##  9 AFG    1969 Rendah     
## 10 AFG    1970 Rendah     
## # ℹ 13,065 more rows

#9.Berapa rata-rata hasil panen pisang (Bananas) di Indonesia dari seluruh tahun yang ada?

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

#10.Tampilkan data jagung mulai tahun 2010, lalu menghitung simpangan baku per negara, dan mengurutkannya dari nilai yang paling besar

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
##    <fct>                               <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