Tidyverse Giris eğitimi
Etkin veri analizi için dplyr 3
Bu yazımızda arrange ve mutate fonksiyonlarını inceleyeceğiz.
Arrange bize verileri belirli bir kurala göre sıralamamızı sağlar.
1 2 |
library(dplyr) data("mtcars") |
1 2 3 4 5 6 7 8 9 10 11 |
mtcars %>% select(mpg, cyl) %>% arrange(mpg) %>% head() ## mpg cyl ## Cadillac Fleetwood 10.4 8 ## Lincoln Continental 10.4 8 ## Camaro Z28 13.3 8 ## Duster 360 14.3 8 ## Chrysler Imperial 14.7 8 ## Maserati Bora 15.0 8 |
Arrange default olarak küçükten büyüğe doğru sıralar. Büyükten küçüğe sıralamak için desc() fonksiyonu kullanılır.
1 2 3 4 5 6 7 8 9 10 11 |
mtcars %>% select(mpg, cyl) %>% arrange(desc(mpg)) %>% head() ## mpg cyl ## Toyota Corolla 33.9 4 ## Fiat 128 32.4 4 ## Honda Civic 30.4 4 ## Lotus Europa 30.4 4 ## Fiat X1-9 27.3 4 ## Porsche 914-2 26.0 4 |
Mutate fonksiyonu bize yeni sütunlar yapmamıza olanak verir. Özellikle bazı veri setlerinde 2 farklı değişkeni çekip yeni bir değişken yapmak gerekebilir. Mutate fonksiyonuna bakarken gapminder veri setini kullanacağım.
1 |
install.packages(“gapminder”) |
1 2 3 4 5 6 7 8 9 10 11 12 |
library(gapminder) data("gapminder") glimpse(gapminder) ## Rows: 1,704 ## Columns: 6 ## $ country <fct> Afghanistan, Afghanistan, Afghanistan, Afghanistan, Afgha... ## $ continent <fct> Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asia, Asi... ## $ year <int> 1952, 1957, 1962, 1967, 1972, 1977, 1982, 1987, 1992, 199... ## $ lifeExp <dbl> 28.801, 30.332, 31.997, 34.020, 36.088, 38.438, 39.854, 4... ## $ pop <int> 8425333, 9240934, 10267083, 11537966, 13079460, 14880372,... ## $ gdpPercap <dbl> 779.4453, 820.8530, 853.1007, 836.1971, 739.9811, 786.113... |
Gapminder, 6 tane sütunu olan bir veri setir. Ülke, kıta, sene, ortalama ömür beklentisi, nüfus, ve kişi başına düşen gayri safi yurt içi hasıla verileri vardır.
Veri 1952-2007 senesi arasında sonu 2 ve 7 ile biten seneler mevcuttur.
Öğrendiklerimizle önce Türkiye verisini çağıralım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
gapminder %>% filter(country == "Turkey") ## # A tibble: 12 x 6 ## country continent year lifeExp pop gdpPercap ## <fct> <fct> <int> <dbl> <int> <dbl> ## 1 Turkey Europe 1952 43.6 22235677 1969. ## 2 Turkey Europe 1957 48.1 25670939 2219. ## 3 Turkey Europe 1962 52.1 29788695 2323. ## 4 Turkey Europe 1967 54.3 33411317 2826. ## 5 Turkey Europe 1972 57.0 37492953 3451. ## 6 Turkey Europe 1977 59.5 42404033 4269. ## 7 Turkey Europe 1982 61.0 47328791 4241. ## 8 Turkey Europe 1987 63.1 52881328 5089. ## 9 Turkey Europe 1992 66.1 58179144 5678. ## 10 Turkey Europe 1997 68.8 63047647 6601. ## 11 Turkey Europe 2002 70.8 67308928 6508. ## 12 Turkey Europe 2007 71.8 71158647 8458. |
ardından verimizden continent (kıta) ve lifeExp sütunlarını çıkartalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
gapminder %>% filter(country == "Turkey") %>% select(-c(continent, lifeExp)) ## # A tibble: 12 x 4 ## country year pop gdpPercap ## <fct> <int> <int> <dbl> ## 1 Turkey 1952 22235677 1969. ## 2 Turkey 1957 25670939 2219. ## 3 Turkey 1962 29788695 2323. ## 4 Turkey 1967 33411317 2826. ## 5 Turkey 1972 37492953 3451. ## 6 Turkey 1977 42404033 4269. ## 7 Turkey 1982 47328791 4241. ## 8 Turkey 1987 52881328 5089. ## 9 Turkey 1992 58179144 5678. ## 10 Turkey 1997 63047647 6601. ## 11 Turkey 2002 67308928 6508. ## 12 Turkey 2007 71158647 8458. |
şimdi ise mutate fonksiyonunu kullanarak ülkemizin Gayri safi yurt içi hasılasını hesaplayalım. Bunun için kişi başına düşen GSYH’yi nüfus ile çarpmamız gerekiyor. Çarptıktan sonra 1.000.000(10^6) sayısına bölersek milyon dolar cinsinden gösteririz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
gapminder %>% filter(country == "Turkey") %>% select(-c(continent, lifeExp)) %>% mutate(GDPperMillion = gdpPercap * pop/10^6) ## # A tibble: 12 x 5 ## country year pop gdpPercap GDPperMillion ## <fct> <int> <int> <dbl> <dbl> ## 1 Turkey 1952 22235677 1969. 43784. ## 2 Turkey 1957 25670939 2219. 56958. ## 3 Turkey 1962 29788695 2323. 69195. ## 4 Turkey 1967 33411317 2826. 94432. ## 5 Turkey 1972 37492953 3451. 129377. ## 6 Turkey 1977 42404033 4269. 181028. ## 7 Turkey 1982 47328791 4241. 200738. ## 8 Turkey 1987 52881328 5089. 269115. ## 9 Turkey 1992 58179144 5678. 330361. ## 10 Turkey 1997 63047647 6601. 416205. ## 11 Turkey 2002 67308928 6508. 438052. ## 12 Turkey 2007 71158647 8458. 601880. |
Elde ettiğimiz veriye göre ülkemizin GSYH’si 1952 senesinde 43 milyar 784 milyon dolara seviyesindeyken 2007 senesine geldiğmizde 601 milyar 879 milyon dolar seviyesine geldiğini görüyoruz.
Serinin bir önceki yazısına ulaşmak için buraya tıklayabilirsiniz.