R’de mevcut veri setlerini görmek için data fonksiyonunu kullandık.
data()
library(datasets)
İki farklı veri seti yükledik. Bu veri setindeki ilk 2 ve son 8 elemanını görüntülemek içn sırasıyla head ve tail fonksiyonlarını kullandık.
# WorldPhones veri setini yükleyelim
data(WorldPhones)
data("iris")
head(iris, n=2)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
tail(iris, n=8)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 143 5.8 2.7 5.1 1.9 virginica
## 144 6.8 3.2 5.9 2.3 virginica
## 145 6.7 3.3 5.7 2.5 virginica
## 146 6.7 3.0 5.2 2.3 virginica
## 147 6.3 2.5 5.0 1.9 virginica
## 148 6.5 3.0 5.2 2.0 virginica
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
Iris veri setindeki Species sütununun frekansını göstermek için table fonksiyonunu kullandık.
table(iris$Species)
##
## setosa versicolor virginica
## 50 50 50
Veri çerçevesi oluşturmak için vektörleri tanımladık. Beden vektörüne factor atamamımızın nedeni bu değişkenin kategorik değişken olduğunu tanımlamak içindi. Head fonksiyonu ile veri çerçevesinin ilk 6 hanesi görülebilir.
ad <- c("Ali", "Elif", "Su", "Deniz", "Aras", "Berk", "Can", "Ece", "Efe", "Arda")
boy <- c(160, 165, 170, 155, 167, 162, 169, 158, 160, 164)
kilo <- c(55, 55, 57, 50, 48, 65, 58, 62, 45, 47)
beden <- c("S", "M", "S", "M", "S", "L", "M", "L", "S", "S")
beden <- factor(beden)
df <- data.frame(ad, boy, kilo, beden)
head(df)
## ad boy kilo beden
## 1 Ali 160 55 S
## 2 Elif 165 55 M
## 3 Su 170 57 S
## 4 Deniz 155 50 M
## 5 Aras 167 48 S
## 6 Berk 162 65 L
Bir veri seti içerisinden alt küme seçmek için subset fonksiyonunu kullanıyoruz. Bu fonksiyon içerisinde alt kümenin özelliklerini tanımlamamız gerekiyor. Örneğin, sıcaklığı 90’dan fazla olacak şeklinde gibi…
subset(airquality, Temp > 90, select = c(Ozone, Temp))
## Ozone Temp
## 42 NA 93
## 43 NA 92
## 69 97 92
## 70 97 92
## 75 NA 91
## 102 NA 92
## 120 76 97
## 121 118 94
## 122 84 96
## 123 85 94
## 124 96 91
## 125 78 92
## 126 73 93
## 127 91 93
subset(airquality, Day == 1, select = -Temp)
## Ozone Solar.R Wind Month Day
## 1 41 190 7.4 5 1
## 32 NA 286 8.6 6 1
## 62 135 269 4.1 7 1
## 93 39 83 6.9 8 1
## 124 96 167 6.9 9 1
Öncelikle yeni bir veri çerçevesi oluşturduk:
df2 <- data.frame(
S1 = sample(0:100, 20),
S2 = runif(n = 20, min = 50, max = 70)
)
head(df2)
## S1 S2
## 1 54 50.21363
## 2 90 68.33877
## 3 61 56.98687
## 4 63 53.31361
## 5 20 52.11444
## 6 3 51.13784
Bu veri çerçevesine üçüncü bir sütun eklemek istedik. Bunun için 20 tane sayıyı örneklemledik ve üçüncü sütun olacak şekilde tanımladık. Buna ek olarak en son sütuna ortalamaları eklemek için yeniden bir tanımlamaya yaptık. Her yeni sütun için ya dolar ya da iki tane köşeli parantez kullandık.
df2$S3 <- sample(60:80, 20, replace = TRUE)
df2[["ort"]] <- round(rowMeans(df2), 2)
head(df2)
## S1 S2 S3 ort
## 1 54 50.21363 62 55.40
## 2 90 68.33877 63 73.78
## 3 61 56.98687 68 62.00
## 4 63 53.31361 71 62.44
## 5 20 52.11444 75 49.04
## 6 3 51.13784 67 40.38
Yeni satır eklemek için rbind kullandık. Burada yazdığım kod Markdown’da çalışmadığı için kendim yeni bir satır eklemesi örneği denedim.
df3 <- data.frame(S1 = c(50, 60, 10), S2 = c(55.3, 65.5, 20.3))
S3 <- c(70, 60, 25.4)
df4 <- rbind (df3,S3)
## Warning in rbind(deparse.level, ...): number of columns of result, 2, is not a
## multiple of vector length 3 of arg 2
df4
## S1 S2
## 1 50 55.3
## 2 60 65.5
## 3 10 20.3
## 4 70 60.0
dim(df4)
## [1] 4 2
Liste içerisinde farklı türde değişkenleri içerdiği için yaygın olatak kullacağımız form olduğunu öğrendik. Liste oluşturmak için list kodunu kullandık.
liste <- list(ad, boy, kilo)
str(liste)
## List of 3
## $ : chr [1:10] "Ali" "Elif" "Su" "Deniz" ...
## $ : num [1:10] 160 165 170 155 167 162 169 158 160 164
## $ : num [1:10] 55 55 57 50 48 65 58 62 45 47
Listeye ek bir liste eklemek için list ve c fonksiyonlarını kullandık.
liste2 <- list(liste, c(1, 2, 3))
str(liste2)
## List of 2
## $ :List of 3
## ..$ : chr [1:10] "Ali" "Elif" "Su" "Deniz" ...
## ..$ : num [1:10] 160 165 170 155 167 162 169 158 160 164
## ..$ : num [1:10] 55 55 57 50 48 65 58 62 45 47
## $ : num [1:3] 1 2 3
Listelere isim vermek için ise her bir vektöre isim tanımlaması yaptık.
# İsimli liste oluşturma
liste_isim <- list(isim = ad, boyolcum = boy, kiloolcum = kilo)
liste_isim
## $isim
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda"
##
## $boyolcum
## [1] 160 165 170 155 167 162 169 158 160 164
##
## $kiloolcum
## [1] 55 55 57 50 48 65 58 62 45 47
# Gerekli paketleri yükleyelim
library(tidyverse) # Çeşitli veri manipülasyon fonksiyonları
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── 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(knitr) # Tablo ve görüntü gösterimi için
library(kableExtra) # Tabloları şekillendirmek için
##
## Attaching package: 'kableExtra'
##
## The following object is masked from 'package:dplyr':
##
## group_rows
library(papaja) # APA tarzı tablolar için
## Loading required package: tinylabels
library(gt) # Şık tablolar için
library(DT) # Etkileşimli tablolar için