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