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
= read_excel("data//tarım.xlsx")
tarim_raw = read_excel("data//tahıl.xlsx")
tahil_raw = read_excel("data//sebze.xlsx")
sebze_raw = read_excel("data//meyve.xlsx") meyve_raw
View the raw data
::kable(head(tarim_raw),caption = "12-year agricultural area by province") knitr
İ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 |
::kable(head(tahil_raw),caption = "12-year grain production by province") knitr
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 |
::kable(head(sebze_raw),caption = "12-year vegetable production by province") knitr
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 |
::kable(head(meyve_raw),caption = "12-year agricultural area by province") knitr
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
<- c("province","year","decare")
new_cols colnames(tarim_raw) <- new_cols
<-tarim_raw
tarim <- c("vegetable_type","province","year","decare")
new_cols colnames(sebze_raw) <- new_cols
<- c("grain_type","province","year","decare")
new_cols colnames(tahil_raw) <- new_cols
Transform Meyve Dataset
<- meyve_raw %>% pivot_longer(cols = 'Adana-1':'Şırnak-73', names_to = 'province',
meyve 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
<- c("fruit_type","year","province","production")
new_cols colnames(meyve) <- new_cols
Separate the Columns
Separate Product name and product types
<- separate(data = tahil_raw, col = grain_type, into = c("main_type", "product_type"), sep = " ve ")
tahil_v1
<- 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+")
tahil
<- separate(data = sebze_raw, col = vegetable_type, into = c("main_type", "product_type"), sep = " ve ")
sebze_v1
<- 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+")
sebze
<- separate(data = meyve, col = fruit_type, into = c("main_type", "product_type"), sep = " ve ")
meyve_v1
<- 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+") meyve
Separate province names and province codes
<- separate(data = tarim, col = province, into = c("province", "province_code"), sep = "-")
tarim
<- separate(data = tahil, col = province, into = c("province", "province_code"), sep = "-")
tahil
<- separate(data = meyve, col = province, into = c("province", "province_code"), sep = "-")
meyve
<- separate(data = sebze, col = province, into = c("province", "province_code"), sep = "-") sebze
Remove paranthesis characters from product_name columns
$product_name <- gsub("[()]", "", tahil$product_name)
tahil$product_name <- gsub("[()]", "", meyve$product_name)
meyve$product_name <- gsub("[()]", "", sebze$product_name) sebze
Remove spaces at the beginning and at the end of the “unit” column
$unit = str_trim(tahil$unit)
tahil$unit = str_trim(sebze$unit)
sebze$unit = str_trim(meyve$unit) meyve
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
$year <- year(as.Date(tarim$year, format = "%Y"))
tarim$year <- year(as.Date(tahil$year, format = "%Y"))
tahil$year <- year(as.Date(meyve$year, format = "%Y"))
meyve$year <- year(as.Date(sebze$year, format = "%Y")) sebze
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
::kable(head(tarim),caption = "12-year agricultural area by province") knitr
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 |
::kable(head(meyve,caption = "12-year fruit production by province")) knitr
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 |
::kable(head(sebze),caption = "12-year vegetable production by province") knitr
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 |
::kable(head(tahil),caption = "12-year grain production by province") knitr
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
= read_excel("data//turkey.xlsx")
turkey saveRDS(turkey, file = "data//turkey.rds")