
BUSINESS PROBLEM
Agricultural production plays a key role in the independence and development of a country. In this project, we aim to analyze the changes in our agricultural production areas and products over the years and obtain output in Turkey.
DATA DESCRIPTION
Data is gathered from TUIK Agriculture Data
There are various different types of Agriculture data in TUIK. Datasets that we will use are:
PREPROCESS
Call necessary libraries
#install.packages("readxl")
library(readxl)
library(lubridate)
library(dplyr)
library(tidyverse)
library(ggplot2)
library(tidyr)Load the TUIK data sets
tarim_raw = read_excel("data//tarım.xlsx")
tahil_raw = read_excel("data//tahıl.xlsx")
sebze_raw = read_excel("data//sebze.xlsx")
meyve_raw = read_excel("data//meyve.xlsx")View the raw data
knitr::kable(head(tarim_raw),caption = "12-year agricultural area by province")| İl | Yıl | Tarım Alanı - Dekar |
|---|---|---|
| Adana-1 | 2010 | 5506353 |
| Adana-1 | 2011 | 4962979 |
| Adana-1 | 2012 | 4807968 |
| Adana-1 | 2013 | 4751612 |
| Adana-1 | 2014 | 4982042 |
| Adana-1 | 2015 | 4887150 |
knitr::kable(head(tahil_raw),caption = "12-year grain production by province")| Tür | İl | Yıl | Değer |
|---|---|---|---|
| Ekilen Alan ve 01.11.11.00.00. (Durum Buğdayı) - Dekar | Adana-1 | 2010 | 8508 |
| Ekilen Alan ve 01.11.12.00.00. (Buğday, Durum Buğdayı Hariç) - Dekar | Adana-1 | 2010 | 2167738 |
| Ekilen Alan ve 01.11.20.00.00. (Mısır) - Dekar | Adana-1 | 2010 | 860354 |
| Ekilen Alan ve 01.11.31.00.01. (Arpa (Biralık)) - Dekar | Adana-1 | 2010 | NA |
| Ekilen Alan ve 01.11.31.00.02. (Arpa (Diğer)) - Dekar | Adana-1 | 2010 | 63190 |
| Ekilen Alan ve 01.11.32.00.00. (Çavdar) - Dekar | Adana-1 | 2010 | 1042 |
knitr::kable(head(sebze_raw),caption = "12-year vegetable production by province")| Tür | İl | Yıl | Değer |
|---|---|---|---|
| Ekilen Alan ve 01.11.61.00.01. (Fasulye, Taze) - Dekar | Adana-1 | 2010 | 3640 |
| Ekilen Alan ve 01.11.61.00.02. (Barbunya, Taze) - Dekar | Adana-1 | 2010 | 600 |
| Ekilen Alan ve 01.11.62.00.00. (Bezelye, Taze) - Dekar | Adana-1 | 2010 | 5860 |
| Ekilen Alan ve 01.11.69.00.01. (Börülce, Taze) - Dekar | Adana-1 | 2010 | 55 |
| Ekilen Alan ve 01.11.69.00.02. (Bakla, Taze) - Dekar | Adana-1 | 2010 | 3240 |
| Ekilen Alan ve 01.13.11.00.00. (Kuşkonmaz) - Dekar | Adana-1 | 2010 | NA |
knitr::kable(head(meyve_raw),caption = "12-year agricultural area by province")| Tür | Yıl | Adana-1 | Adıyaman-2 | Afyonkarahisar-3 | Aksaray-68 | Amasya-5 | Ankara-6 | Antalya-7 | Ardahan-75 | Artvin-8 | Aydın-9 | Ağrı-4 | Balıkesir-10 | Bartın-74 | Batman-72 | Bayburt-69 | Bilecik-11 | Bingöl-12 | Bitlis-13 | Bolu-14 | Burdur-15 | Bursa-16 | Denizli-20 | Diyarbakır-21 | Düzce-81 | Edirne-22 | Elazığ-23 | Erzincan-24 | Erzurum-25 | Eskişehir-26 | Gaziantep-27 | Giresun-28 | Gümüşhane-29 | Hakkari-30 | Hatay-31 | Isparta-32 | Iğdır-76 | Kahramanmaraş-46 | Karabük-78 | Karaman-70 | Kars-36 | Kastamonu-37 | Kayseri-38 | Kilis-79 | Kocaeli-41 | Konya-42 | Kütahya-43 | Kırklareli-39 | Kırıkkale-71 | Kırşehir-40 | Malatya-44 | Manisa-45 | Mardin-47 | Mersin-33 | Muğla-48 | Muş-49 | Nevşehir-50 | Niğde-51 | Ordu-52 | Osmaniye-80 | Rize-53 | Sakarya-54 | Samsun-55 | Siirt-56 | Sinop-57 | Sivas-58 | Tekirdağ-59 | Tokat-60 | Trabzon-61 | Tunceli-62 | Uşak-64 | Van-65 | Yalova-77 | Yozgat-66 | Zonguldak-67 | Çanakkale-17 | Çankırı-18 | Çorum-19 | İstanbul-34 | İzmir-35 | Şanlıurfa-63 | Şırnak-73 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofralık Üzüm, Çekirdekli) - Adet Sayısı | 2010 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 0 | 0 | NA | 0 | 0 | 0 | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.02. (Sofralık Üzüm, Çekirdeksiz) - Adet Sayısı | 2010 | 0 | 0 | 0 | NA | NA | 0 | 0 | NA | 0 | 0 | NA | 0 | NA | 0 | NA | NA | 0 | NA | NA | 0 | 0 | 0 | 0 | NA | NA | NA | NA | NA | 0 | 0 | 0 | NA | 0 | 0 | 0 | NA | NA | NA | NA | NA | NA | NA | NA | 0 | 0 | 0 | NA | NA | 0 | NA | 0 | NA | 0 | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA | NA | NA | NA | 0 | NA | NA | NA | 0 | NA | NA | NA | 0 | 0 | NA | NA |
| Meyve Veren Yaşta Ağaç Sayısı ve 01.21.12.01.01. (Şaraplık Üzümler) - Adet Sayısı | 2010 | 0 | 0 | NA | NA | 0 | 0 | 0 | NA | NA | 0 | NA | 0 | NA | NA | NA | NA | NA | NA | NA | 0 | NA | 0 | 0 | 0 | 0 | 0 | NA | NA | 0 | 0 | NA | NA | NA | 0 | 0 | NA | 0 | 0 | 0 | NA | NA | 0 | 0 | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 0 | 0 | NA | NA | NA | NA | NA | NA | NA | NA | 0 | 0 | NA | 0 | 0 | NA | NA | NA | NA | 0 | 0 | 0 | 0 | 0 | 0 | NA |
| Meyve Veren Yaşta Ağaç Sayısı ve 01.21.12.02.01. (Kurutmalık Üzüm, Çekirdekli) - Adet Sayısı | 2010 | 0 | 0 | 0 | 0 | NA | NA | 0 | NA | NA | NA | NA | 0 | NA | 0 | NA | 0 | NA | 0 | NA | 0 | NA | 0 | 0 | NA | NA | NA | NA | NA | 0 | 0 | NA | NA | 0 | NA | 0 | NA | 0 | NA | 0 | NA | NA | 0 | 0 | 0 | 0 | NA | NA | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NA | 0 | 0 | NA | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA | NA | NA | NA | NA | NA | 0 | 0 | 0 | 0 |
| Meyve Veren Yaşta Ağaç Sayısı ve 01.21.12.02.02. (Kurutmalık Üzüm, Çekirdeksiz) - Adet Sayısı | 2010 | NA | NA | NA | 0 | NA | NA | 0 | NA | NA | 0 | NA | 0 | NA | 0 | NA | NA | NA | NA | NA | 0 | NA | 0 | 0 | NA | NA | NA | NA | NA | 0 | NA | NA | NA | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA | NA | NA | NA | 0 | NA | NA | 0 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | NA | NA | NA | NA | NA | NA | NA | 0 | NA | 0 |
| Meyve Veren Yaşta Ağaç Sayısı ve 01.22.11.00.00. (Avokado) - Adet Sayısı | 2010 | NA | NA | NA | NA | NA | NA | 16895 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | 2745 | 1410 | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA | NA |
Fix the column names
new_cols <- c("province","year","decare")
colnames(tarim_raw) <- new_cols
tarim <-tarim_raw
new_cols <- c("vegetable_type","province","year","decare")
colnames(sebze_raw) <- new_cols
new_cols <- c("grain_type","province","year","decare")
colnames(tahil_raw) <- new_colsTransform Meyve Dataset
meyve <- meyve_raw %>% pivot_longer(cols = 'Adana-1':'Şırnak-73', names_to = 'province',
values_to = 'production')
meyve# A tibble: 297,675 × 4
Tür Yıl provi…¹ produ…²
<chr> <chr> <chr> <dbl>
1 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Adana-1 0
2 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Adıyam… 0
3 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Afyonk… 0
4 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Aksara… 0
5 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Amasya… 0
6 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Ankara… 0
7 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Antaly… 0
8 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Ardaha… NA
9 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Artvin… 0
10 Meyve Veren Yaşta Ağaç Sayısı ve 01.21.11.01.01. (Sofr… 2010 Aydın-9 0
# … with 297,665 more rows, and abbreviated variable names ¹province,
# ²production
Rename the meyve dataset columns
new_cols <- c("fruit_type","year","province","production")
colnames(meyve) <- new_colsSeparate the Columns
Separate Product name and product types
tahil_v1 <- separate(data = tahil_raw, col = grain_type, into = c("main_type", "product_type"), sep = " ve ")
tahil <- separate(data = tahil_v1, col = product_type, into = c("product_type", "unit"), sep = "-")
tahil <- separate(tahil, product_type, into = c("product_code", "product_name"), sep = "^\\S*\\K\\s+")
sebze_v1 <- separate(data = sebze_raw, col = vegetable_type, into = c("main_type", "product_type"), sep = " ve ")
sebze <- separate(data = sebze_v1, col = product_type, into = c("product_type", "unit"), sep = "-")
sebze <-separate(sebze, product_type, into = c("product_code", "product_name"), sep = "^\\S*\\K\\s+")
meyve_v1 <- separate(data = meyve, col = fruit_type, into = c("main_type", "product_type"), sep = " ve ")
meyve <- separate(data = meyve_v1, col = product_type, into = c("product_type", "unit"), sep = "-")
meyve <-separate(meyve, product_type, into = c("product_code", "product_name"), sep = "^\\S*\\K\\s+")Separate province names and province codes
tarim <- separate(data = tarim, col = province, into = c("province", "province_code"), sep = "-")
tahil <- separate(data = tahil, col = province, into = c("province", "province_code"), sep = "-")
meyve <- separate(data = meyve, col = province, into = c("province", "province_code"), sep = "-")
sebze <- separate(data = sebze, col = province, into = c("province", "province_code"), sep = "-")Remove paranthesis characters from product_name columns
tahil$product_name <- gsub("[()]", "", tahil$product_name)
meyve$product_name <- gsub("[()]", "", meyve$product_name)
sebze$product_name <- gsub("[()]", "", sebze$product_name)Remove spaces at the beginning and at the end of the “unit” column
tahil$unit = str_trim(tahil$unit)
sebze$unit = str_trim(sebze$unit)
meyve$unit = str_trim(meyve$unit)Check the Data Types
view the data types
str(tarim)tibble [972 × 4] (S3: tbl_df/tbl/data.frame)
$ province : chr [1:972] "Adana" "Adana" "Adana" "Adana" ...
$ province_code: chr [1:972] "1" "1" "1" "1" ...
$ year : chr [1:972] "2010" "2011" "2012" "2013" ...
$ decare : num [1:972] 5506353 4962979 4807968 4751612 4982042 ...
str(sebze)tibble [103,530 × 8] (S3: tbl_df/tbl/data.frame)
$ main_type : chr [1:103530] "Ekilen Alan" "Ekilen Alan" "Ekilen Alan" "Ekilen Alan" ...
$ product_code : chr [1:103530] "01.11.61.00.01." "01.11.61.00.02." "01.11.62.00.00." "01.11.69.00.01." ...
$ product_name : chr [1:103530] "Fasulye, Taze " "Barbunya, Taze " "Bezelye, Taze " "Börülce, Taze " ...
$ unit : chr [1:103530] "Dekar" "Dekar" "Dekar" "Dekar" ...
$ province : chr [1:103530] "Adana" "Adana" "Adana" "Adana" ...
$ province_code: chr [1:103530] "1" "1" "1" "1" ...
$ year : chr [1:103530] "2010" "2010" "2010" "2010" ...
$ decare : num [1:103530] 3640 600 5860 55 3240 NA 2280 220 NA 30 ...
str(sebze)tibble [103,530 × 8] (S3: tbl_df/tbl/data.frame)
$ main_type : chr [1:103530] "Ekilen Alan" "Ekilen Alan" "Ekilen Alan" "Ekilen Alan" ...
$ product_code : chr [1:103530] "01.11.61.00.01." "01.11.61.00.02." "01.11.62.00.00." "01.11.69.00.01." ...
$ product_name : chr [1:103530] "Fasulye, Taze " "Barbunya, Taze " "Bezelye, Taze " "Börülce, Taze " ...
$ unit : chr [1:103530] "Dekar" "Dekar" "Dekar" "Dekar" ...
$ province : chr [1:103530] "Adana" "Adana" "Adana" "Adana" ...
$ province_code: chr [1:103530] "1" "1" "1" "1" ...
$ year : chr [1:103530] "2010" "2010" "2010" "2010" ...
$ decare : num [1:103530] 3640 600 5860 55 3240 NA 2280 220 NA 30 ...
str(meyve)tibble [297,675 × 8] (S3: tbl_df/tbl/data.frame)
$ main_type : chr [1:297675] "Meyve Veren Yaşta Ağaç Sayısı" "Meyve Veren Yaşta Ağaç Sayısı" "Meyve Veren Yaşta Ağaç Sayısı" "Meyve Veren Yaşta Ağaç Sayısı" ...
$ product_code : chr [1:297675] "01.21.11.01.01." "01.21.11.01.01." "01.21.11.01.01." "01.21.11.01.01." ...
$ product_name : chr [1:297675] "Sofralık Üzüm, Çekirdekli " "Sofralık Üzüm, Çekirdekli " "Sofralık Üzüm, Çekirdekli " "Sofralık Üzüm, Çekirdekli " ...
$ unit : chr [1:297675] "Adet Sayısı" "Adet Sayısı" "Adet Sayısı" "Adet Sayısı" ...
$ year : chr [1:297675] "2010" "2010" "2010" "2010" ...
$ province : chr [1:297675] "Adana" "Adıyaman" "Afyonkarahisar" "Aksaray" ...
$ province_code: chr [1:297675] "1" "2" "3" "68" ...
$ production : num [1:297675] 0 0 0 0 0 0 0 NA 0 0 ...
Convert the Data Types
Convert Year column to Date type
tarim$year <- year(as.Date(tarim$year, format = "%Y"))
tahil$year <- year(as.Date(tahil$year, format = "%Y"))
meyve$year <- year(as.Date(meyve$year, format = "%Y"))
sebze$year <- year(as.Date(sebze$year, format = "%Y"))Check Missing values
sum(is.na(tarim))[1] 0
sum(is.na(tahil));[1] 190210
sum(is.na(meyve))[1] 162452
sum(is.na(sebze))[1] 42723
If we remove the NAs, we may miss the provinces where some agriculture products are not produced/ or TUIK cannot get any information. So we first check whether there are 0 values
tahil %>%
filter(decare==0)# A tibble: 475 × 8
main_type product_code produc…¹ unit provi…² provi…³ year decare
<chr> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl>
1 Ekilen Alan 01.19.31.09.00. "Yonca … Dekar Afyonk… 3 2010 0
2 Hasat Edilen Alan 01.19.31.09.00. "Yonca … Dekar Afyonk… 3 2010 0
3 Ekilen Alan 01.19.31.05.00. "Korung… Dekar Aksaray 68 2010 0
4 Ekilen Alan 01.19.31.09.00. "Yonca … Dekar Aksaray 68 2010 0
5 Hasat Edilen Alan 01.19.31.05.00. "Korung… Dekar Aksaray 68 2010 0
6 Hasat Edilen Alan 01.19.31.09.00. "Yonca … Dekar Aksaray 68 2010 0
7 Ekilen Alan 01.19.31.05.00. "Korung… Dekar Ardahan 75 2010 0
8 Hasat Edilen Alan 01.19.31.05.00. "Korung… Dekar Ardahan 75 2010 0
9 Ekilen Alan 01.19.31.05.00. "Korung… Dekar Artvin 8 2010 0
10 Ekilen Alan 01.19.31.09.00. "Yonca … Dekar Artvin 8 2010 0
# … with 465 more rows, and abbreviated variable names ¹product_name,
# ²province, ³province_code
As it is seen from above there are 0 values, so we cannot sure what NA means in this dataset, so we will leave as it is.
View the Datasets
knitr::kable(head(tarim),caption = "12-year agricultural area by province")| province | province_code | year | decare |
|---|---|---|---|
| Adana | 1 | 2010 | 5506353 |
| Adana | 1 | 2011 | 4962979 |
| Adana | 1 | 2012 | 4807968 |
| Adana | 1 | 2013 | 4751612 |
| Adana | 1 | 2014 | 4982042 |
| Adana | 1 | 2015 | 4887150 |
knitr::kable(head(meyve,caption = "12-year fruit production by province"))| main_type | product_code | product_name | unit | year | province | province_code | production |
|---|---|---|---|---|---|---|---|
| Meyve Veren Yaşta Ağaç Sayısı | 01.21.11.01.01. | Sofralık Üzüm, Çekirdekli | Adet Sayısı | 2010 | Adana | 1 | 0 |
| Meyve Veren Yaşta Ağaç Sayısı | 01.21.11.01.01. | Sofralık Üzüm, Çekirdekli | Adet Sayısı | 2010 | Adıyaman | 2 | 0 |
| Meyve Veren Yaşta Ağaç Sayısı | 01.21.11.01.01. | Sofralık Üzüm, Çekirdekli | Adet Sayısı | 2010 | Afyonkarahisar | 3 | 0 |
| Meyve Veren Yaşta Ağaç Sayısı | 01.21.11.01.01. | Sofralık Üzüm, Çekirdekli | Adet Sayısı | 2010 | Aksaray | 68 | 0 |
| Meyve Veren Yaşta Ağaç Sayısı | 01.21.11.01.01. | Sofralık Üzüm, Çekirdekli | Adet Sayısı | 2010 | Amasya | 5 | 0 |
| Meyve Veren Yaşta Ağaç Sayısı | 01.21.11.01.01. | Sofralık Üzüm, Çekirdekli | Adet Sayısı | 2010 | Ankara | 6 | 0 |
knitr::kable(head(sebze),caption = "12-year vegetable production by province")| main_type | product_code | product_name | unit | province | province_code | year | decare |
|---|---|---|---|---|---|---|---|
| Ekilen Alan | 01.11.61.00.01. | Fasulye, Taze | Dekar | Adana | 1 | 2010 | 3640 |
| Ekilen Alan | 01.11.61.00.02. | Barbunya, Taze | Dekar | Adana | 1 | 2010 | 600 |
| Ekilen Alan | 01.11.62.00.00. | Bezelye, Taze | Dekar | Adana | 1 | 2010 | 5860 |
| Ekilen Alan | 01.11.69.00.01. | Börülce, Taze | Dekar | Adana | 1 | 2010 | 55 |
| Ekilen Alan | 01.11.69.00.02. | Bakla, Taze | Dekar | Adana | 1 | 2010 | 3240 |
| Ekilen Alan | 01.13.11.00.00. | Kuşkonmaz | Dekar | Adana | 1 | 2010 | NA |
knitr::kable(head(tahil),caption = "12-year grain production by province")| main_type | product_code | product_name | unit | province | province_code | year | decare |
|---|---|---|---|---|---|---|---|
| Ekilen Alan | 01.11.11.00.00. | Durum Buğdayı | Dekar | Adana | 1 | 2010 | 8508 |
| Ekilen Alan | 01.11.12.00.00. | Buğday, Durum Buğdayı Hariç | Dekar | Adana | 1 | 2010 | 2167738 |
| Ekilen Alan | 01.11.20.00.00. | Mısır | Dekar | Adana | 1 | 2010 | 860354 |
| Ekilen Alan | 01.11.31.00.01. | Arpa Biralık | Dekar | Adana | 1 | 2010 | NA |
| Ekilen Alan | 01.11.31.00.02. | Arpa Diğer | Dekar | Adana | 1 | 2010 | 63190 |
| Ekilen Alan | 01.11.32.00.00. | Çavdar | Dekar | Adana | 1 | 2010 | 1042 |
Save the final datasets
saveRDS(tarim, file = "data//tarim.rds")
saveRDS(tahil, file ="data//tahil.rds")
saveRDS(meyve, file ="data//meyve.rds")
saveRDS(sebze, file ="data//sebze.rds")Save other datasets
turkey = read_excel("data//turkey.xlsx")
saveRDS(turkey, file = "data//turkey.rds")