İlk olarak install.packpage() fonksiyonu ile veri
setinin içerisinde bulunduğu palmerpenguins paketi
yüklenmiştir. Bunun yanı sıra, veri setinin olduğu
palmerpenguins ve analiz sürecinde kullanılabilecek olan
dplyr,ggplot2, tidyverse
openintro paketleri library() fonksiyonu ile
aktif edilmiştir. Kütüphanelerin aktif edilmesinin ardından,
penguins veri setinin süreçte daha rahat takip edilmesi
için set <- penguins tanımlaması yapılmıştır.
library(palmerpenguins)
##
## Attaching package: 'palmerpenguins'
## The following objects are masked from 'package:datasets':
##
## penguins, penguins_raw
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats 1.0.1 ✔ stringr 1.5.2
## ✔ lubridate 1.9.4 ✔ tibble 3.3.0
## ✔ purrr 1.1.0 ✔ tidyr 1.3.1
## ✔ readr 2.1.5
## ── 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
library(openintro)
## Loading required package: airports
## Loading required package: cherryblossom
## Loading required package: usdata
set <- penguins
Veri setinin kaç gözlem ve değişkenden oluştuğunu öğrenmek için
dim() fonksiyonu, veri setindeki değişkenlerin değişken adı
gibi çeşitli yapılarda özet bir şekilde incelenmesi için
head() fonksiyonu kullanılmıştır. Bu doğrultuda setin 8
değişken ve 344 gözlemden oluştuğu saptanmıştır.
dim(set)
## [1] 344 8
head(set)
## # A tibble: 6 × 8
## species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g
## <fct> <fct> <dbl> <dbl> <int> <int>
## 1 Adelie Torgersen 39.1 18.7 181 3750
## 2 Adelie Torgersen 39.5 17.4 186 3800
## 3 Adelie Torgersen 40.3 18 195 3250
## 4 Adelie Torgersen NA NA NA NA
## 5 Adelie Torgersen 36.7 19.3 193 3450
## 6 Adelie Torgersen 39.3 20.6 190 3650
## # ℹ 2 more variables: sex <fct>, year <int>
Veri setinde değişkenlerin adlarının daha rahat takip edilmesi
amacıyla sette bulunan değişkenlerin adı rename()
fonksiyonu ile Türkçe olacak şekilde düzenlenmiştir. Bu düzenleme
sonunda oluşacak yeni set “set1” olarak adlandırılmıştır. Setteki
değişkenlerin Türkçeleştirilmesinin ardından colnames()
fonksiyonu ile düzenlemeler kontrol edilmiştir.
set1 <- set %>%
rename(tur = species,
ada = island,
gaga_uzunlugu = bill_length_mm,
gaga_derinligi = bill_depth_mm,
yuzgec_uzunlugu = flipper_length_mm,
vucut_kutlesi = body_mass_g,
cinsiyet = sex,
yil = year)
colnames(set1)
## [1] "tur" "ada" "gaga_uzunlugu" "gaga_derinligi"
## [5] "yuzgec_uzunlugu" "vucut_kutlesi" "cinsiyet" "yil"
Set1 kapsamındaki kayıp verileri saptamak amacıyla
colSums(is.na()) fonksiyonu kullanılmıştır. Bu uygulama
sonucunda, gaga uzunluğu değişkeninde 2, gaga derinliği değişkeninde 2,
yüzgeç uzunluğu değişkeninde 2, vücut kütlesi değişkeninde 2 ve cinsiyet
değişkeninde 11 adet eksik veri saptanmıştır.Bu eksik verilerin yanı
sıra setin boyutunun yeniden ele alınması için dim()
fonksiyonu kullanılmıştır ve 344 satır, 8 sütun saptanmıştır.
colSums(is.na(set1))
## tur ada gaga_uzunlugu gaga_derinligi yuzgec_uzunlugu
## 0 0 2 2 2
## vucut_kutlesi cinsiyet yil
## 2 11 0
dim(set1)
## [1] 344 8
Eksik verilerin saptanmasının ardından veri setinde bulunan eksik
verilerin silinmesi amacıyla na.omit() fonksiyonu
kullanılmıştır. Bu silinme işlemi sonrasında boyutların saptanması
amacıyla dim() fonksiyonu kullanılarak 333 satır, 8 sütun
saptanmıştır. Son olarak set1, set2 olarak
tanımlanmıştır.
set2 <- na.omit(set1)
dim(set2)
## [1] 333 8
Setten verilerin çıkartılmasının ardından “BMI” değerinin elde
edilmesi ve değişken olarak eklenmesi amacıyla mutate
fonksiyonu kullanılarak “vucut_kutlesi/yuzgec_uzunlugu” işlemi
gerçekleştirilmiştir. Bu doğrutluda değişkenin eklenip eklenmediğini
kontrol etmek amacıyla colnames() fonksiyonu
kullanılmıştır. (Set 3 olarak tanımlama yapılmıştır.)
set3 <- set2 %>%
mutate(bmi = vucut_kutlesi/yuzgec_uzunlugu)
colnames(set3)
## [1] "tur" "ada" "gaga_uzunlugu" "gaga_derinligi"
## [5] "yuzgec_uzunlugu" "vucut_kutlesi" "cinsiyet" "yil"
## [9] "bmi"
set3
## # A tibble: 333 × 9
## tur ada gaga_uzunlugu gaga_derinligi yuzgec_uzunlugu vucut_kutlesi
## <fct> <fct> <dbl> <dbl> <int> <int>
## 1 Adelie Torgersen 39.1 18.7 181 3750
## 2 Adelie Torgersen 39.5 17.4 186 3800
## 3 Adelie Torgersen 40.3 18 195 3250
## 4 Adelie Torgersen 36.7 19.3 193 3450
## 5 Adelie Torgersen 39.3 20.6 190 3650
## 6 Adelie Torgersen 38.9 17.8 181 3625
## 7 Adelie Torgersen 39.2 19.6 195 4675
## 8 Adelie Torgersen 41.1 17.6 182 3200
## 9 Adelie Torgersen 38.6 21.2 191 3800
## 10 Adelie Torgersen 34.6 21.1 198 4400
## # ℹ 323 more rows
## # ℹ 3 more variables: cinsiyet <fct>, yil <int>, bmi <dbl>
BMİ değerinini eklenmesinin ardından grup bazında ortalama, standart
sapma, minimum-maksimum değer ve veri sayısına yönelik inceleme
gerçekleştirilmiştir. Bu inceleme sürecinde group_by()
fonksiyonu ile grup temellendirmesi türlere göre yapılmıştır. Ardından
summarise() fonksiyonu içerisinde belirtilen değerler
hesaplanmıştır.
betimsel_ist <- set3 %>%
group_by(tur) %>%
summarise(ort = mean(bmi),
st_sap = sd(bmi),
minimum = min(bmi),
maksimum = max(bmi),
n = n()
)
betimsel_ist
## # A tibble: 3 × 6
## tur ort st_sap minimum maksimum n
## <fct> <dbl> <dbl> <dbl> <dbl> <int>
## 1 Adelie 19.5 2.18 15.2 25.3 146
## 2 Chinstrap 19.0 1.60 14.1 22.9 68
## 3 Gentoo 23.4 1.88 19.0 28.5 119
Bu hesaplamanın ardından ise ggplot() fonksiyonuyla
birlikte betimsel istatistiklere yönelik olarak kutu grafiği
oluşturulmuştur.Bu kapsamda geom_boxplot() ile kutu
grafiği, theme_minimal() ile minimal tema,
labs() ile başlıklandırmalar ve
legend.position() ile lejan konumu oluşturulmuştur. Elde
edilen kutu grafiğinde ise veri setindeki üç penguen türü arasındaki BMI
dağılımının karşılıştırılması amaçlanmıştır. Süreçte Gentoo
penguenlerinin 23 puan civarıyla en yüksek medyan değerine sahip olduğu
saptanmıştır. Bunun yanı sıra Adelie ve Chinstrap türlerinin ise 19-20
aralığında bir medyan değerine sahip olduğu gözlenmiştir. Bu medyan
çizgilerinin belirgin ayrımına bağlı olarak BMI açısından
Chinstrap-Adelie ve Gentoo türleri arasından anlamlı fark olabileceği
söylenebilir. Bunun yanı sıra, Chinstrap türünde aykırı değerlerde
gözlemlenmiştir.
ggplot(set3, aes(x=tur, y=bmi, fill=tur))+
geom_boxplot()+
theme_minimal()+
labs(title = "BMI Temelli Karsilastirma", x= "Turler", y= "BMI")+
theme(legend.position = "top")
Total veri yapısındaki gaga_uzunlugu ve
gaga_derinligi arasındaki ilişkiyi görmek için
ggplot ile scatter plot oluşturulmuştur. Süreçte
geom_point() fonskiyonu ile scatter plot,
geom_smooth() fonksiyonu ile regresyon çizgisi,
theme_minimal() ile tema, labs() ile de
başlıklandırmalar eklenmiştir. Elde edilen scatter plot doğrultusunda
regresyon doğrusunun aşağı doğru eğimli olduğu gözlenmektedir. Bu
doğrultuda negatif bir yapı olduğu yani gaga uzunluğunun arttığı
durumlarda, gaga derinliğinin azalma eğiliminde olduğu söylenebilir.
ggplot(set3, aes(x=gaga_uzunlugu, y=gaga_derinligi, fill = "tur"))+
geom_point()+
geom_smooth(method = "lm", se= TRUE)+
theme_minimal()+
labs(title="Gaga Uzunlugu ve Derinligi Arası İliski", x="gaga uzunlugu", y="gaga derinligi")
## `geom_smooth()` using formula = 'y ~ x'
Regresyon temelli scatter plotın oluşturulmasının ardından
lm() fonksiyonu ile basit doğrusal regresyon modeli
kurulmuştur. Kurulan model hakkında özet bilgi elde edilmesi amacıyla
summary() fonksiyonu kullanılmıştır. Elde edilen katsayılar
doğrultusunda istatistiksel olarak anlamlı ve negatif yönlü bir ilişki
saptanmıştır. Buna karşın, Rkare değerinin düşük olması ilişkinin
açıklanmasında gaga uzunluğunun yetersiz kaldığını göstermektedir.
regresyon_modeli <- lm(gaga_derinligi ~ gaga_uzunlugu, data = set3)
summary(regresyon_modeli)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = set3)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.1548 -1.4291 0.0122 1.3994 4.5004
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 20.78665 0.85417 24.335 < 2e-16 ***
## gaga_uzunlugu -0.08233 0.01927 -4.273 2.53e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.92 on 331 degrees of freedom
## Multiple R-squared: 0.05227, Adjusted R-squared: 0.04941
## F-statistic: 18.26 on 1 and 331 DF, p-value: 2.528e-05
Tür bazında analizlerin gerçekleştirilmesi için
group_by() fonksiyonu ile gruplandırma süreci
gerçekleştirilmiştir. Bunun ardından grup bazlı şekilde scatter plot
ggplot() fonksiyonuyla oluşturulmuştur. Süreçte
geom_point() fonskiyonu ile scatter plot,
geom_smooth() fonksiyonu ile regresyon çizgisi,
theme_minimal() ile tema, labs() ile de
başlıklandırmalar eklenmiştir. Elde edilen grafik doğrultusunda önceki
elde edilen grafiğin tam tersi şekilde tüm türlerde pozitif yönlü bir
eğri vardır. Bu doğrultuda her türde gaga uzunluğu arttıkça gaga
derinliğinin arttığı söylenebilir. Tür bazında detaylı bakıldığında,
Gentoo ve Chinstrap türlerinde çizgiye yakın yığılmalar gözlenmiştir. Bu
doğrultuda bu iki tür için daha güçlü ilişki gözlendiği söylenebilir.
Sonuç olarak, türler arası büyük ortalama farklar olmasına rağmen,
türlerin her birinin kendi içindeki gaga boyutları arasında tutarlı,
pozitif bir ilişki mevcuttur.
set4 <- set3 %>%
group_by(tur)
set4
## # A tibble: 333 × 9
## # Groups: tur [3]
## tur ada gaga_uzunlugu gaga_derinligi yuzgec_uzunlugu vucut_kutlesi
## <fct> <fct> <dbl> <dbl> <int> <int>
## 1 Adelie Torgersen 39.1 18.7 181 3750
## 2 Adelie Torgersen 39.5 17.4 186 3800
## 3 Adelie Torgersen 40.3 18 195 3250
## 4 Adelie Torgersen 36.7 19.3 193 3450
## 5 Adelie Torgersen 39.3 20.6 190 3650
## 6 Adelie Torgersen 38.9 17.8 181 3625
## 7 Adelie Torgersen 39.2 19.6 195 4675
## 8 Adelie Torgersen 41.1 17.6 182 3200
## 9 Adelie Torgersen 38.6 21.2 191 3800
## 10 Adelie Torgersen 34.6 21.1 198 4400
## # ℹ 323 more rows
## # ℹ 3 more variables: cinsiyet <fct>, yil <int>, bmi <dbl>
ggplot(set4, aes(gaga_uzunlugu, gaga_derinligi, color = tur)) +
geom_point() +
geom_smooth(method = "lm", se = TRUE) +
theme_minimal() +
labs(title="Turlere Gore Gaga Uzunlugu ve Derinligi Arası İliski", x="gaga uzunlugu", y="gaga derinligi")
## `geom_smooth()` using formula = 'y ~ x'
Scatter plotın oluşturulmasının ardından tür bazından regresyon
modelleri lm() fonksiyonu ile oluşturulmuştur. Elde edilen
değerler summary() değeri ile de özetlenmiştir. Elde edilen
veriler doğrultusunda “Chinstrap” penguenlerinde gaga uzunluğu ile gaga
derinliği arasında pozitif, orta düzeyde güçlü ve anlamlı bir ilişki
olduğu, Gentoo penguenlerinde de gaga uzunluğu ile derinliği arasında
güçlü, pozitif ve anlamlı bir ilişki olduğu gözlenmektedir. Ayrıca
Adelie penguenlerinde gaga uzunluğu ile gaga derinliği arasındaki ilişki
pozitif fakat zayıftır. Genel doğrultuda bakarsak tüm penguen türlerinde
gaga uzunluğu ile gaga derinliği arası pozitif ilişki olduğu yanni tüm
türlerde gaga uzunluğu arttıkça derinliğinde arttığı söylenebilir. Bu
durum total veri üzerinden yaptığımız incelemenin tam zıttı bir
yapıdadır.
adel_regresyon_modeli <- lm(gaga_derinligi ~ gaga_uzunlugu, data = set4 %>% filter(tur == "Adelie"))
summary(adel_regresyon_modeli)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = set4 %>%
## filter(tur == "Adelie"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.1487 -0.7926 -0.0842 0.5550 3.4990
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11.48771 1.37010 8.385 4.23e-14 ***
## gaga_uzunlugu 0.17668 0.03521 5.018 1.51e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.129 on 144 degrees of freedom
## Multiple R-squared: 0.1489, Adjusted R-squared: 0.1429
## F-statistic: 25.18 on 1 and 144 DF, p-value: 1.515e-06
chin_regresyon_modeli <- lm(gaga_derinligi ~ gaga_uzunlugu, data = set4 %>% filter(tur == "Chinstrap"))
summary(chin_regresyon_modeli)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = set4 %>%
## filter(tur == "Chinstrap"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.65742 -0.46033 -0.01862 0.61473 1.69801
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 7.56914 1.55053 4.882 6.99e-06 ***
## gaga_uzunlugu 0.22221 0.03168 7.015 1.53e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8659 on 66 degrees of freedom
## Multiple R-squared: 0.4271, Adjusted R-squared: 0.4184
## F-statistic: 49.21 on 1 and 66 DF, p-value: 1.526e-09
gent_regresyon_modeli <- lm(gaga_derinligi ~ gaga_uzunlugu, data = set4 %>% filter(tur == "Gentoo"))
summary(gent_regresyon_modeli)
##
## Call:
## lm(formula = gaga_derinligi ~ gaga_uzunlugu, data = set4 %>%
## filter(tur == "Gentoo"))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.57143 -0.52974 -0.04479 0.45417 2.96109
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.1210 1.0583 4.839 4.02e-06 ***
## gaga_uzunlugu 0.2076 0.0222 9.352 7.34e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7491 on 117 degrees of freedom
## Multiple R-squared: 0.4277, Adjusted R-squared: 0.4229
## F-statistic: 87.45 on 1 and 117 DF, p-value: 7.337e-16
Toplam veri setinde neden negatif ilişki gözlemlediniz?
Ele alınan üç tür bazında bakıldığında gaga uzunluğu ve gaga derinliği arasında pozitif yönlü ilişki saptanmışken, total veri üzerinde inceleme yapıldığında ilişki yönü tam tersine dönmüştür. Bunun temel nedeni olarak, her türün gaga yapısındaki uzunluk ve derinlik açısından farklılık olarak ifade edebiliriz. Bu farklılık durumu, total veri üzerinde regresyon doğrusunun yönünü olumsuz etkileyerek yanıltıcı bir eğilim vermiştir. Bu durum ise “Simpson paradoksunu” yansıtan bir durum olarak ifade edilebilir.
Tür bilgisi eklendiğinde neden ilişki yön değiştirdi?
Tür temelli analiz süreciyle birlikte gaga uzunluğu ve gaga derinliği
arasında pozitif yönlü ilişki saptanmıştır. Bunun temel nedeni olarak,
group_by() fonksiyonuyla birlikte gerçekleştirilen
sınıflama doğrultusunda sadece türlerin kendi içerisinde
değerlendirilmesi yani benzer özellikteki penguen türlerinin ele
alınması olarak ifade edebiliriz. Kısacası, tür içerisindeki özellik
varyansyonu olarak bahsedilebilir.
Bu durumu Simpson Paradoksu çerçevesinde nasıl açıklarsınız?
Simposın Paradoksu, ele alınan verilerin tamamıyla gerçekleştirilen analiz ile gruplara ayrılarak gerçekleştirilen analizlerde yön değişimi durumunu temsil etmektedir. Bu doğrultuda penguenlerin tamamına yönelik olan analiz ile türlere göre alınan analiz sürecindeki değişim durumu bu yapıyı yansıtmaktadır.
Bu örnek, verileri alt gruplara göre incelemenin neden önemli olduğunu nasıl göstermektedir?
Gerçekleştirilen bir analiz sürecinde total veriye bakıldığında yanıltıcı sonuçlar elde edilebileceğini gösteren bir yapı olmuştur. Bu doğrultuda bir analiz sürecinde alt gruplarında göz önünde bulundurulması gerektiğini anladım. Bununla birlikte, alt gruplara yönelik verilerin ele alınması sürecinde görselleştirme de önemli bir yapı olarak ifade edilebilir.
Bu hafta gerçekleştirdiğimiz ders kapsamında RMarkdown’a yönelik yeni
fonksiyonlar öğrenmiş bulunmaktayım. Süreçte, öncelikle title gibi
başlıkların yer aldığı bölüme toc ve toc_depth
fonksiyonlarını ekleyerek bir menü yapısı oluşturabileceğimi öğrendim.
Ayrıca, toc_float: collapsed fonksiyonu sayesinde “html”
çıktısının sol tarafında daha detaylı bir menü sekmesi sunulabileceğini
fark ettim. Bununla birlikte, knit aracıyla elde ettiğimiz “html”
çıktılarında theme fonksiyonu aracılığıyla
journal, flatly, united,
cosmo gibi temaları ekleyebileceğimizi öğrendim. Özellikle
tema ve menü fonksiyonlarını öğrenmem, oluşturduğumuz içeriği daha rahat
ve sistematik bir şekilde incelememi sağladı. Ancak
smooth_scroll ifadesinin tam olarak ne işe yaradığını henüz
tam olarak anlayamadığımı belirtmek isterim.
Bu yapılar yanı sıra birinci ödevimiz kapsamında yaptığımız RMarkdown
hatalarına değinilmiştir. Bu doğrultuda bir başlıklandırma yapılacağı
zaman ## simgesinin tercih edilmesi gerektiğini ve düz
metin yazarken # simgesinin kullanılmaması gerektiğini
öğrendim. Ayrıca, RMarkdown sayfasında kendi formüllerimizi çeşitli
kodlarla oluşturabileceğimizi ve bu yapının latex format
olarak adlandırıldığını öğrendim. Latex format ile örneğin; \(\sum_{n=1}^{8} n^3\), \(x\ge y\), \[\sqrt{25+75}\] işlemlerinin
yansıtılabileceğini anladım. Buna ek olarak çift dolar işaretiyle
birlikte alt satırın orta kısmında formuller gösterilebilmektedir.
Örneğin: \[\sum_{n=1}^{8} n^3\]
Genel RMarkdown yapısının yanı sıra, bu hafta openintro
paketi kapsamında yer alan ucb_admit veri seti üzerinde
çalıştığımızı söyleyebilirim. Bu veri setinde, çeşitli değişkenlerin
frekanslarını belirlemek amacıyla count() fonksiyonunu
kullandık. Başlangıçta count() fonksiyonuna yalnızca tek
bir değişken eklenebildiğini düşünüyordum; ancak aynı fonksiyon
içerisinde birden fazla değişkenin de kullanılabildiğini öğrendim. Veri
seti üzerinde çalışırken, ggplot() fonksiyonundaki
fill = "" ifadesinin, renklendirmenin hangi değişkene göre
yapılacağını belirlediğini fark ettim. Ayrıca, round( , )
fonksiyonu aracılığıyla elde edilen katsayıların kaç ondalık basamakla
gösterileceğinin ayarlanabildiğini öğrendim.
fill = "" ifadesinin bir diğer kullanım alanının ise
grafik türünün belirlendiği durumlarda olduğunu öğrendim. Örneğin,
geom_bar(position = "fill") ifadesi kullanıldığında,
verideki frekansların “0.00”, “0.50” gibi oran biçiminde gösterilmesini
sağladığını fark ettim. fill = "" ifadesine ek olarak,
tidyr paketi içerisinde yer alan
pivot_wider(names_from = , values_from = ) yapısının
tabloları daha geniş ve okunabilir hale getirmek için kullanıldığını
öğrendim. Ayrıca, ggplot() fonksiyonu kapsamında
facet_wrap(. ~ değişken) ifadesiyle değişkendeki gruplara
göre grafiklerin sunulabildiğini,
theme(legend.position = "top/left/right/bottom") yapısıyla
da lejantın konumunun değiştirilebildiğini gördüm. Bu tür fonksiyonlar
sayesinde oluşturmak istediğim grafikleri daha özgün ve işlevsel biçimde
tasarlayabileceğimi anladım. Son olarak,
scale_x_continuous(labels = scales::label_percent())
ifadesiyle grafikteki eksen etiketlerinin yüzde biçiminde gösterilmesini
sağlayabildiğimizi ve sapply(setadı,analiztürü)
fonksiyonuyla doğrudan ele alacağımız yapılara yönelik işlemler
yapabileceğimizi öğrendim. Genel olarak, verimli ama bir o kadar da
karışık öğrenmeler gerçekleştirdiğim bir hafta olduğunu düşünüyorum.
Bununla birlikte, yeni öğrenmelere açık olduğumu fark ettim.