ekonometri 2 vize projesi
PAKETLER NEDIR
“Paketler” genellikle yazılım geliştirme veya bilgisayar programlama bağlamında kullanılan bir terimdir. Bu terim, bir programlama dilindeki modüler yapının bir parçasını ifade eder.
Bir yazılım projesi genellikle birden fazla dosya ve bileşen içerir. Bu dosyalar, belirli işlevleri yerine getiren kod parçalarını içerebilir. Bu kod parçaları daha sonra başka projelerde veya aynı projenin farklı bölümlerinde kullanılabilir. İşte burada “paketler” devreye girer.
Paketler, ilgili işlevleri veya kod parçalarını bir araya getirerek daha geniş bir projede organize etmek için kullanılır. Bu, kodun daha okunabilir, yönetilebilir ve yeniden kullanılabilir olmasını sağlar.
Örneğin, Python programlama dilinde birçok paket bulunur. Bu paketler, belirli işlevleri gerçekleştirmek için bir araya getirilmiş modüllerden oluşur. Örneğin, “numpy” paketi, bilimsel hesaplama işlemleri için kullanılan bir dizi matematik fonksiyonunu içerir. “requests” paketi, web üzerinden veri alışverişi yapmak için kullanılır. Bu paketler, kod yazarken bu işlevleri yeniden icat etmek yerine, zaten var olan işlevsellikleri kullanmanızı sağlar.
PAKETLER NIYE ICIN KULANIR,
Modülerlik ve Organizasyon: Büyük yazılım projeleri genellikle birden çok dosya ve kod parçasını içerir. Paketler, ilgili işlevleri gruplayarak ve düzenleyerek, projeyi modüler hale getirir. Bu, kodun daha okunabilir, yönetilebilir ve bakımı daha kolay olmasını sağlar.
Yeniden Kullanılabilirlik: Paketler, belirli işlevleri veya kod parçalarını başka projelerde veya aynı projenin farklı bölümlerinde yeniden kullanılabilir hale getirir. Bu, kodun tekrar kullanılmasını sağlayarak zaman kazandırır ve hata olasılığını azaltır.
İsim Çakışmalarını Önleme: Paketler, farklı modüllerin veya kütüphanelerin aynı isimlere sahip olmasını önler. Bu, kodun daha organize edilmiş olmasını ve çakışmaların önlenmesini sağlar.
Sürdürülebilirlik ve Büyüme: Yazılım projeleri genellikle zaman içinde büyür ve değişir. Paketler, projenin büyümesini desteklemek ve yeni işlevlerin eklenmesini kolaylaştırmak için yapısal bir çerçeve sağlar.
Topluluk Katkısı ve Paylaşım: Paketler, yazılım geliştiricilerin kendi projelerini diğerleriyle paylaşmasını ve topluluk katkısını teşvik eder. Bu, daha geniş bir geliştirici topluluğu tarafından kullanılabilir ve geliştirilebilir kodlar oluşturulmasını sağlar.
Sonuç olarak, paketler yazılım geliştirme sürecinde kodun daha düzenli ve etkili bir şekilde yönetilmesini sağlar, kodun tekrar kullanılabilirliğini artırır ve projelerin büyümesini ve gelişmesini destekler.
PAKETLER NEDEN ONEMLIDIR
Kod Organizasyonu ve Modülerlik: Büyük yazılım projeleri genellikle çok sayıda dosya ve kod parçasını içerir. Paketler, ilgili işlevleri gruplayarak ve düzenleyerek kodun daha okunabilir ve yönetilebilir olmasını sağlar. Bu, geliştiricilerin projeyi daha iyi anlamasını ve bakımını yapmasını kolaylaştırır.
Yeniden Kullanılabilirlik: Paketler, belirli işlevleri veya kod parçalarını başka projelerde veya aynı projenin farklı bölümlerinde yeniden kullanılabilir hale getirir. Bu, kodun tekrar kullanılmasını sağlayarak geliştirme sürecini hızlandırır ve hata olasılığını azaltır.
İsim Çakışmalarını Önleme: Paketler, farklı modüllerin veya kütüphanelerin aynı isimlere sahip olmasını önler. Bu, kodun daha organize edilmiş olmasını ve çakışmaların önlenmesini sağlar.
Sürdürülebilirlik ve Büyüme: Yazılım projeleri genellikle zaman içinde büyür ve değişir. Paketler, projenin büyümesini desteklemek ve yeni işlevlerin eklenmesini kolaylaştırmak için yapısal bir çerçeve sağlar.
Topluluk Katkısı ve Paylaşım: Paketler, yazılım geliştiricilerin kendi projelerini diğerleriyle paylaşmasını ve topluluk katkısını teşvik eder. Bu, daha geniş bir geliştirici topluluğu tarafından kullanılabilir ve geliştirilebilir kodlar oluşturulmasını sağlar.
Performans ve Verimlilik: İyi tasarlanmış paketler, kodun optimize edilmesini ve performansın artırılmasını sağlar. Ayrıca, tekrar kullanılabilir bileşenlerin kullanılması geliştirme sürecini hızlandırır ve kaynakları daha verimli bir şekilde kullanmaya yardımcı olur.
Sonuç olarak, paketler yazılım geliştirme sürecinde kodun düzenli bir şekilde yönetilmesini sağlar, tekrar kullanılabilirliği artırır, çakışmaları önler, projenin sürdürülebilirliğini ve büyümesini destekler ve geniş bir geliştirici topluluğunun katılımını teşvik eder. Bu nedenlerden dolayı, paketler yazılım geliştirme sürecinde önemlidir.
#Tidyverse, R programlama dilinde veri analizi ve veri bilimi için bir dizi paketi içeren kapsamlı bir araç setidir. Tidyverse, veri analizi süreçlerini kolaylaştırmak, kodun daha okunabilir ve anlaşılabilir olmasını sağlamak için tasarlanmıştır. Bu araç seti, veri temizleme, veri manipülasyonu, veri görselleştirme ve modelleme gibi birçok yaygın veri analizi görevini gerçekleştirmek için kullanılır.
Tidyverse, temel olarak “tidy data” prensibine dayanır. Bu prensibe göre, veri setinin her bir sütunu bir değişkeni ve her bir satırı bir gözlemi temsil etmelidir. Veri setinin düzenli, yapılandırılmış ve tutarlı bir formatta olması, analiz sürecini kolaylaştırır.
Tidyverse, birkaç önemli paketi içerir. Bunlardan bazıları şunlardır:
#stringr, R programlama dilinde karakter dizileriyle (stringlerle) çalışmak için kullanılan bir pakettir. Bu paket, karakter dizileri üzerinde çeşitli işlemleri gerçekleştirmek için fonksiyonlar sağlar ve dize işlemlerini daha kolay ve etkili hale getirir.
stringr paketi, bir dizi fonksiyon içerir ve bunlar karakter dizileri üzerinde yaygın olarak kullanılan işlemleri gerçekleştirmek için tasarlanmıştır. Bu işlemler arasında dize parçalama, birleştirme, arama, değiştirme ve dize uzunluğunu bulma gibi işlemler bulunur.
Örneğin, stringr paketindeki str_split() fonksiyonu, bir karakter dizisini belirli bir ayırıcıya göre parçalamak için kullanılır. str_replace() fonksiyonu, bir karakter dizisi içinde belirli bir deseni başka bir desenle değiştirmek için kullanılır. Benzer şekilde, str_detect() fonksiyonu, bir karakter dizisinin belirli bir deseni içerip içermediğini kontrol etmek için kullanılır.
Bu fonksiyonlar, veri temizleme, metin madenciliği, dize manipülasyonu ve dize işleme gibi birçok veri analizi görevinde sıkça kullanılır. stringr paketi, R dilinde karakter dizileri üzerinde işlem yapmayı daha basit ve verimli hale getirir.
#data.table, R programlama dilinde veri tablolarını hızlı ve etkili bir şekilde işlemek için kullanılan bir pakettir. Bu paket, büyük veri kümeleriyle çalışırken performansı artırmak ve veri işleme işlemlerini hızlandırmak için tasarlanmıştır.
data.table paketi, veri çerçeveleriyle aynı temel veri yapısını kullanır, ancak veri işleme işlemlerini çok daha hızlı gerçekleştirir. Bu paketin en büyük avantajlarından biri, büyük boyutlardaki veri kümelerinde bile hızlı bir şekilde çalışabilmesidir.
data.table paketinin kullanımı oldukça esnektir ve birçok farklı veri işleme işlemi için çeşitli fonksiyonlar sağlar. Veri çerçeveleri üzerinde sıralama, filtreleme, toplama, birleştirme, dönüştürme ve gruplama gibi işlemleri hızlı bir şekilde gerçekleştirmek için kullanılabilir.
Bu paket aynı zamanda büyük veri kümeleriyle çalışırken bellek kullanımını optimize etmeye de yardımcı olur. Büyük veri kümelerini parçalara böler ve paralel işleme yöntemlerini kullanarak işlemi hızlandırır. Bu, R dilinde veri işleme performansını artırır ve büyük veri kümeleriyle çalışırken karşılaşılan bellek sınırlamalarını azaltır.
Genel olarak, data.table paketi, R dilinde büyük veri kümeleriyle hızlı ve etkili bir şekilde çalışmak isteyen kullanıcılar için güçlü bir araçtır. Veri analizi ve veri bilimi projelerinde büyük boyutlardaki veri kümeleriyle verimli bir şekilde çalışmak isteyenler için önemli bir kaynaktır.
#reshape2, R programlama dilinde veri dönüştürme ve yeniden şekillendirme işlemleri için kullanılan bir pakettir. Bu paket, genellikle veri analizi ve eri manipülasyonu süreçlerinde, veri çerçevelerini farklı formatlara dönüştürmek ve veri yapılarını yeniden şekillendirmek için kullanılır.
reshape2 paketinin en yaygın kullanıldığı senaryolar arasında geniş formatlı verilerin dar formatlı verilere dönüştürülmesi bulunur. Bu, özellikle veri tablolarının sütunlarının yeni değişkenler haline getirilmesi ve değerlerin sütunlara dökülmesi veya genişletilmesi ile gerçekleştirilir.
Paket, melt() ve dcast() gibi temel fonksiyonları içerir:
melt(): Geniş formatlı verileri dar formatlı verilere dönüştürmek için kullanılır. Önceden belirlenmiş bir dize değişkenini koruyarak diğer sütunları eritir, bu sayede veri setini daha analiz edilebilir bir formata getirir.
dcast(): Veri setini geniş formatlı hale getirmek için kullanılır. Özetlenmiş veya gruplanmış veri setlerini dar formatlı verilere dönüştürmek için kullanılır.
Bu fonksiyonlar, özellikle veri tablolarını uzun veya dar formatlara dönüştürmek, çapraz tablolar oluşturmak ve özet istatistikler hesaplamak gibi işlemleri hızlı ve etkili bir şekilde gerçekleştirmek için kullanılır.
reshape2 paketi, R’da veri analizi süreçlerini daha verimli ve esnek hale getirmek için kullanılan önemli bir araçtır. Veri setlerini farklı formatlara dönüştürmek ve veri yapılarını yeniden şekillendirmek için yaygın olarak tercih edilen bir pakettir.
#Rcpp, R programlama dilinin C++ ile entegrasyonunu sağlayan bir pakettir. Bu paket, R dili içinde C++ kodunun kullanılmasını mümkün kılarak R kodunun performansını artırır ve özelleştirilmiş işlevlerin eklenmesine olanak tanır.
Rcpp’nin temel amacı, R dili üzerinde çalışan birçok paketi ve uygulamayı optimize etmek ve hızlandırmaktır. Özellikle, büyük veri kümeleriyle veya yoğun hesaplama gerektiren durumlarda, C++ ile yazılmış işlevlerin kullanılması R kodunun performansını önemli ölçüde artırabilir.
Rcpp paketi, R’daki kod performansını artırmak için R dili içinde C++ kodunun kullanımını kolaylaştırır. Bu sayede, hızlı ve etkili C++ işlevleri oluşturmak ve bunları R ortamında kullanmak mümkün hale gelir.
Rcpp, R kodu ile C++ kodu arasında hızlı bir şekilde geçiş yapılmasını sağlayan bir dizi araç ve fonksiyon içerir. Bu, R dilinde çalışan projelerin performansını artırmak ve özelleştirilmiş işlevler eklemek için önemli bir araçtır.
Rcpp, R kodu ile C++ kodu arasında hızlı bi bir şekilde geçiş yapılmasını sağlayan bir dizi araç ve fonksiyon içerir. Bu, R dilinde çalışan projelerin performansını artırmak ve özelleştirilmiş işlevler eklemek için önemli bir araçtır.
Özetle, Rcpp paketi, R programlama dilinin C++ ile entegrasyonunu sağlar ve R kodunun performansını artırarak büyük veri kümeleriyle ve yoğun hesaplama gerektiren durumlarda daha etkili bir şekilde çalışılmasını sağlar.
##https://data.worldbank.org/indicator/SE.XPD.TOTL.GB.ZS?view=chart&locations=FI-AR
#WDI
SE.XPD.TOTL.GB.ZS
## 'data.frame': 17024 obs. of 6 variables:
## $ country : chr "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ iso2c : chr "AF" "AF" "AF" "AF" ...
## $ iso3c : chr "AFG" "AFG" "AFG" "AFG" ...
## $ year : int 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 ...
## $ SE.XPD.TOTL.GB.ZS: num NA NA NA NA NA NA NA NA NA NA ...
## ..- attr(*, "label")= chr "Government expenditure on education, total (% of government expenditure)"
## $ SP.POP.TOTL : num 8622466 8790140 8969047 9157465 9355514 ...
## ..- attr(*, "label")= chr "Population, total"
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ purrr 1.0.2
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.0 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ── 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
## # A tibble: 6 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 266 NA NA NA
## 2 iso2c chr 0 0 266 NA NA NA
## 3 iso3c chr 0 0 262 NA NA NA
## 4 year int 0 0 64 1960 1992. 2023
## 5 SE.XPD.TOTL.GB.ZS dbl 12597 74 3876 0 14.4 44.8
## 6 SP.POP.TOTL dbl 359 2.1 16460 2646 215973749. 7950946801
## [1] "Afghanistan"
## [2] "Africa Eastern and Southern"
## [3] "Africa Western and Central"
## [4] "Albania"
## [5] "Algeria"
## [6] "American Samoa"
## [7] "Andorra"
## [8] "Angola"
## [9] "Antigua and Barbuda"
## [10] "Arab World"
## [11] "Argentina"
## [12] "Armenia"
## [13] "Aruba"
## [14] "Australia"
## [15] "Austria"
## [16] "Azerbaijan"
## [17] "Bahamas, The"
## [18] "Bahrain"
## [19] "Bangladesh"
## [20] "Barbados"
## [21] "Belarus"
## [22] "Belgium"
## [23] "Belize"
## [24] "Benin"
## [25] "Bermuda"
## [26] "Bhutan"
## [27] "Bolivia"
## [28] "Bosnia and Herzegovina"
## [29] "Botswana"
## [30] "Brazil"
## [31] "British Virgin Islands"
## [32] "Brunei Darussalam"
## [33] "Bulgaria"
## [34] "Burkina Faso"
## [35] "Burundi"
## [36] "Cabo Verde"
## [37] "Cambodia"
## [38] "Cameroon"
## [39] "Canada"
## [40] "Caribbean small states"
## [41] "Cayman Islands"
## [42] "Central African Republic"
## [43] "Central Europe and the Baltics"
## [44] "Chad"
## [45] "Channel Islands"
## [46] "Chile"
## [47] "China"
## [48] "Colombia"
## [49] "Comoros"
## [50] "Congo, Dem. Rep."
## [51] "Congo, Rep."
## [52] "Costa Rica"
## [53] "Cote d'Ivoire"
## [54] "Croatia"
## [55] "Cuba"
## [56] "Curacao"
## [57] "Cyprus"
## [58] "Czechia"
## [59] "Denmark"
## [60] "Djibouti"
## [61] "Dominica"
## [62] "Dominican Republic"
## [63] "Early-demographic dividend"
## [64] "East Asia & Pacific (excluding high income)"
## [65] "East Asia & Pacific (IDA & IBRD countries)"
## [66] "East Asia & Pacific"
## [67] "Ecuador"
## [68] "Egypt, Arab Rep."
## [69] "El Salvador"
## [70] "Equatorial Guinea"
## [71] "Eritrea"
## [72] "Estonia"
## [73] "Eswatini"
## [74] "Ethiopia"
## [75] "Euro area"
## [76] "Europe & Central Asia (excluding high income)"
## [77] "Europe & Central Asia (IDA & IBRD countries)"
## [78] "Europe & Central Asia"
## [79] "European Union"
## [80] "Faroe Islands"
## [81] "Fiji"
## [82] "Finland"
## [83] "Fragile and conflict affected situations"
## [84] "France"
## [85] "French Polynesia"
## [86] "Gabon"
## [87] "Gambia, The"
## [88] "Georgia"
## [89] "Germany"
## [90] "Ghana"
## [91] "Gibraltar"
## [92] "Greece"
## [93] "Greenland"
## [94] "Grenada"
## [95] "Guam"
## [96] "Guatemala"
## [97] "Guinea-Bissau"
## [98] "Guinea"
## [99] "Guyana"
## [100] "Haiti"
## [101] "Heavily indebted poor countries (HIPC)"
## [102] "High income"
## [103] "Honduras"
## [104] "Hong Kong SAR, China"
## [105] "Hungary"
## [106] "IBRD only"
## [107] "Iceland"
## [108] "IDA & IBRD total"
## [109] "IDA blend"
## [110] "IDA only"
## [111] "IDA total"
## [112] "India"
## [113] "Indonesia"
## [114] "Iran, Islamic Rep."
## [115] "Iraq"
## [116] "Ireland"
## [117] "Isle of Man"
## [118] "Israel"
## [119] "Italy"
## [120] "Jamaica"
## [121] "Japan"
## [122] "Jordan"
## [123] "Kazakhstan"
## [124] "Kenya"
## [125] "Kiribati"
## [126] "Korea, Dem. People's Rep."
## [127] "Korea, Rep."
## [128] "Kosovo"
## [129] "Kuwait"
## [130] "Kyrgyz Republic"
## [131] "Lao PDR"
## [132] "Late-demographic dividend"
## [133] "Latin America & Caribbean (excluding high income)"
## [134] "Latin America & Caribbean"
## [135] "Latin America & the Caribbean (IDA & IBRD countries)"
## [136] "Latvia"
## [137] "Least developed countries: UN classification"
## [138] "Lebanon"
## [139] "Lesotho"
## [140] "Liberia"
## [141] "Libya"
## [142] "Liechtenstein"
## [143] "Lithuania"
## [144] "Low & middle income"
## [145] "Low income"
## [146] "Lower middle income"
## [147] "Luxembourg"
## [148] "Macao SAR, China"
## [149] "Madagascar"
## [150] "Malawi"
## [151] "Malaysia"
## [152] "Maldives"
## [153] "Mali"
## [154] "Malta"
## [155] "Marshall Islands"
## [156] "Mauritania"
## [157] "Mauritius"
## [158] "Mexico"
## [159] "Micronesia, Fed. Sts."
## [160] "Middle East & North Africa (excluding high income)"
## [161] "Middle East & North Africa (IDA & IBRD countries)"
## [162] "Middle East & North Africa"
## [163] "Middle income"
## [164] "Moldova"
## [165] "Monaco"
## [166] "Mongolia"
## [167] "Montenegro"
## [168] "Morocco"
## [169] "Mozambique"
## [170] "Myanmar"
## [171] "Namibia"
## [172] "Nauru"
## [173] "Nepal"
## [174] "Netherlands"
## [175] "New Caledonia"
## [176] "New Zealand"
## [177] "Nicaragua"
## [178] "Niger"
## [179] "Nigeria"
## [180] "North America"
## [181] "North Macedonia"
## [182] "Northern Mariana Islands"
## [183] "Norway"
## [184] "Not classified"
## [185] "OECD members"
## [186] "Oman"
## [187] "Other small states"
## [188] "Pacific island small states"
## [189] "Pakistan"
## [190] "Palau"
## [191] "Panama"
## [192] "Papua New Guinea"
## [193] "Paraguay"
## [194] "Peru"
## [195] "Philippines"
## [196] "Poland"
## [197] "Portugal"
## [198] "Post-demographic dividend"
## [199] "Pre-demographic dividend"
## [200] "Puerto Rico"
## [201] "Qatar"
## [202] "Romania"
## [203] "Russian Federation"
## [204] "Rwanda"
## [205] "Samoa"
## [206] "San Marino"
## [207] "Sao Tome and Principe"
## [208] "Saudi Arabia"
## [209] "Senegal"
## [210] "Serbia"
## [211] "Seychelles"
## [212] "Sierra Leone"
## [213] "Singapore"
## [214] "Sint Maarten (Dutch part)"
## [215] "Slovak Republic"
## [216] "Slovenia"
## [217] "Small states"
## [218] "Solomon Islands"
## [219] "Somalia"
## [220] "South Africa"
## [221] "South Asia (IDA & IBRD)"
## [222] "South Asia"
## [223] "South Sudan"
## [224] "Spain"
## [225] "Sri Lanka"
## [226] "St. Kitts and Nevis"
## [227] "St. Lucia"
## [228] "St. Martin (French part)"
## [229] "St. Vincent and the Grenadines"
## [230] "Sub-Saharan Africa (excluding high income)"
## [231] "Sub-Saharan Africa (IDA & IBRD countries)"
## [232] "Sub-Saharan Africa"
## [233] "Sudan"
## [234] "Suriname"
## [235] "Sweden"
## [236] "Switzerland"
## [237] "Syrian Arab Republic"
## [238] "Tajikistan"
## [239] "Tanzania"
## [240] "Thailand"
## [241] "Timor-Leste"
## [242] "Togo"
## [243] "Tonga"
## [244] "Trinidad and Tobago"
## [245] "Tunisia"
## [246] "Turkiye"
## [247] "Turkmenistan"
## [248] "Turks and Caicos Islands"
## [249] "Tuvalu"
## [250] "Uganda"
## [251] "Ukraine"
## [252] "United Arab Emirates"
## [253] "United Kingdom"
## [254] "United States"
## [255] "Upper middle income"
## [256] "Uruguay"
## [257] "Uzbekistan"
## [258] "Vanuatu"
## [259] "Venezuela, RB"
## [260] "Viet Nam"
## [261] "Virgin Islands (U.S.)"
## [262] "West Bank and Gaza"
## [263] "World"
## [264] "Yemen, Rep."
## [265] "Zambia"
## [266] "Zimbabwe"
## Joining with `by = join_by(country, iso2c, iso3c)`
## # A tibble: 12 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 215 NA NA NA
## 2 iso2c chr 0 0 215 NA NA NA
## 3 iso3c chr 0 0 215 NA NA NA
## 4 year int 0 0 64 1960 1992. 2023
## 5 SE.XPD.TOTL.GB.ZS dbl 10275 74.7 3480 0 14.5 44.8
## 6 SP.POP.TOTL dbl 245 1.8 13467 2646 24759535. 1417173173
## 7 region chr 0 0 7 NA NA NA
## 8 capital chr 0 0 210 NA NA NA
## 9 longitude chr 0 0 210 NA NA NA
## 10 latitude chr 0 0 210 NA NA NA
## 11 income chr 0 0 5 NA NA NA
## 12 lending chr 0 0 4 NA NA NA
# Group by 'country' and count missing values within each group
missing_data_count <- df %>%
group_by(country) %>%
summarize(missing_count = sum(is.na(SP.POP.TOTL)), .groups = 'drop')
# Identify countries with all missing data or more than 20 missing points
countries_with_all_missing <- missing_data_count %>%
filter(missing_count == 66) # Change 66 to the total number of observations per country
countries_with_more_than_20_missing <- missing_data_count %>%
filter(missing_count > 5) # Change 20 to your desired threshold
# View countries with all missing data or more than 20 missing points
print(countries_with_all_missing)## # A tibble: 0 × 2
## # ℹ 2 variables: country <chr>, missing_count <int>
## # A tibble: 1 × 2
## country missing_count
## <chr> <int>
## 1 West Bank and Gaza 31
## # A tibble: 12 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 214 NA NA NA
## 2 iso2c chr 0 0 214 NA NA NA
## 3 iso3c chr 0 0 214 NA NA NA
## 4 year int 0 0 64 1960 1992. 2023
## 5 SE.XPD.TOTL.GB.ZS dbl 10219 74.6 3472 0 14.5 44.8
## 6 SP.POP.TOTL dbl 214 1.6 13434 2646 24811673. 1417173173
## 7 region chr 0 0 7 NA NA NA
## 8 capital chr 0 0 210 NA NA NA
## 9 longitude chr 0 0 210 NA NA NA
## 10 latitude chr 0 0 210 NA NA NA
## 11 income chr 0 0 5 NA NA NA
## 12 lending chr 0 0 4 NA NA NA
# Group by 'country' and count missing values within each group
missing_data_count <- dff %>%
group_by(country) %>%
summarize(missing_count = sum(is.na(SE.XPD.TOTL.GB.ZS)), .groups = 'drop')## # A tibble: 12 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 214 NA NA NA
## 2 iso2c chr 0 0 214 NA NA NA
## 3 iso3c chr 0 0 214 NA NA NA
## 4 year int 0 0 21 2003 2013 2023
## 5 SE.XPD.TOTL.GB.ZS dbl 1881 41.9 2611 1.7 14.4 44.8
## 6 SP.POP.TOTL dbl 214 4.8 4279 9668 32978052. 1417173173
## 7 region chr 0 0 7 NA NA NA
## 8 capital chr 0 0 210 NA NA NA
## 9 longitude chr 0 0 210 NA NA NA
## 10 latitude chr 0 0 210 NA NA NA
## 11 income chr 0 0 5 NA NA NA
## 12 lending chr 0 0 4 NA NA NA
# Filter out countries no missing values for 'NY.GDP.MKTP.CD'
countries_to_keep <- missing_data_count %>%
filter(missing_count == 0) %>%
pull(country)# Subset the original dataset 'df' to keep only the selected countries
dff <- dff %>%
filter(country %in% countries_to_keep)## # A tibble: 12 × 8
## variable type na na_pct unique min mean max
## <chr> <chr> <int> <dbl> <int> <dbl> <dbl> <dbl>
## 1 country chr 0 0 214 NA NA NA
## 2 iso2c chr 0 0 214 NA NA NA
## 3 iso3c chr 0 0 214 NA NA NA
## 4 year int 0 0 64 1960 1992. 2023
## 5 SE.XPD.TOTL.GB.ZS dbl 10219 74.6 3472 0 14.5 44.8
## 6 SP.POP.TOTL dbl 214 1.6 13434 2646 24811673. 1417173173
## 7 region chr 0 0 7 NA NA NA
## 8 capital chr 0 0 210 NA NA NA
## 9 longitude chr 0 0 210 NA NA NA
## 10 latitude chr 0 0 210 NA NA NA
## 11 income chr 0 0 5 NA NA NA
## 12 lending chr 0 0 4 NA NA NA
# Calculate ratios for each country
df_ratios <- dff %>%
group_by(year) %>%
summarise(
world_education = sum(SE.XPD.TOTL.GB.ZS),
world_population = sum(SP.POP.TOTL),
world_education_perp = world_education/world_population
) # Plotting total production per person after 2000
library(ggplot2)
ggplot(df_ratios, aes(x = year, y = world_education_perp)) +
geom_line() +
labs(
title = "Total Production per Person after 2000",
x = "Year",
y = "Total Production per Person"
)dff <- dff %>%
mutate(
country_ratio = SE.XPD.TOTL.GB.ZS / world_education * 100,
population_ratio = SP.POP.TOTL / world_population * 100,
verim = country_ratio / population_ratio
)dff <- dff %>%
arrange(country, year) %>%
group_by(country) %>%
mutate(cumulative_change = (verim / first(verim) - 1) * 100)ggplot(df_TR, aes(x = year, y = verim)) +
geom_line() +
labs(
title = "verim in Turkiye after 2000",
x = "Year",
y = "Verim"
)ggplot(df_LV, aes(x = year, y = verim)) +
geom_line() +
labs(
title = "verim in Latvia after 2000",
x = "Year",
y = "Verim"
)df %>% filter(country %in% c("France", "Turkiye")) %>%
ggplot(aes(x = year,
y = SP.POP.TOTL,
col = country)) +
geom_line()## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_line()`).