MATRİSLER
Matrisler iki boyutlu ve tek veri türündedir. matrix()
komutu ile matrisler oluşturulur. Bu komutun varsayılanı önce sütunları
doldurmaktadır. Satırlardan başlayarak doldurmasını istersen eğer
byrow= TRUE kullanılır. Transpozu için ise
tr() kullanılır.
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
## [4,] 4 8 12
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
## [4,] 10 11 12
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
VERİ SETLERİ (DATA FRAME)
Veri setleri iki boyutludur ve çeşitli veri türlerini içerebilirler.
data.frame() komutu ile veri setleri oluşturulur. Aynı
uzunlukta olma şartıyla birkaç vektör birleştirilerek veri seti
oluşturulabilir.
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)## 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
## 7 Can 169 58 M
## 8 Ece 158 62 L
## 9 Efe 160 45 S
## 10 Arda 164 47 S
Farklı uzunlukta vektörler olduğunda ve veri seti oluşturmak istendiğinde kısa olan vektör uzun olana yetişene kadar tekrar ediyor. Ancak bu durum tam kat oldukça geçerlidir. Eğer tam katı olmazsa bu işlemez.
x <- 11:14; y <- 10; M <- c(10,35); N <- 2:4
data.frame(x, y) # (4,1)
data.frame(x, M) # (4,2)
data.frame(x,N) #(4,3) hata çünkü tam katı değiller. Hazır Veri Setleri
Programda kullanmak üzere çeşitli veri setleri mevcuttur. Gerekli
paketler indirilir ve aktif edilir. data() ile çalışma
alanına hazır veri setleri aktarılır.
data()
# install.packages("datasets")
library (datasets)
# install.packages("dslabs")
library (dslabs)
data(WorldPhones)
View(WorldPhones)
iris #enviromente ekli değil
data("iris") #enviromente eklemek içinVeri inceleme
Veri setlerini incelemek için çeşitli komutlar vardır.
dim() ile boyutlar öğrenilir.
head() ile
ilk 6 satır varsayılan olarak gösterilir.
tail () ile
son 6 satır varsayılan olarak gösterilir.
## [1] 50 2
## N.Amer Europe Asia S.Amer Oceania Africa Mid.Amer
## 1951 45939 21574 2876 1815 1646 89 555
## 1956 60423 29990 4708 2568 2366 1411 733
## N.Amer Europe Asia S.Amer Oceania Africa Mid.Amer
## 1951 45939 21574 2876 1815 1646 89 555
## 1956 60423 29990 4708 2568 2366 1411 733
## 1957 64721 32510 5230 2695 2526 1546 773
## 1958 68484 35218 6662 2845 2691 1663 836
## 1959 71799 37598 6856 3000 2868 1769 911
## 1960 76036 40341 8220 3145 3054 1905 1008
## 1961 79831 43173 9053 3338 3224 2005 1076
## 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
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 149 6.2 3.4 5.4 2.3 virginica
## 150 5.9 3.0 5.1 1.8 virginica
## [1] setosa setosa setosa setosa setosa setosa
## [7] setosa setosa setosa setosa setosa setosa
## [13] setosa setosa setosa setosa setosa setosa
## [19] setosa setosa setosa setosa setosa setosa
## [25] setosa setosa setosa setosa setosa setosa
## [31] setosa setosa setosa setosa setosa setosa
## [37] setosa setosa setosa setosa setosa setosa
## [43] setosa setosa setosa setosa setosa setosa
## [49] setosa setosa versicolor versicolor versicolor versicolor
## [55] versicolor versicolor versicolor versicolor versicolor versicolor
## [61] versicolor versicolor versicolor versicolor versicolor versicolor
## [67] versicolor versicolor versicolor versicolor versicolor versicolor
## [73] versicolor versicolor versicolor versicolor versicolor versicolor
## [79] versicolor versicolor versicolor versicolor versicolor versicolor
## [85] versicolor versicolor versicolor versicolor versicolor versicolor
## [91] versicolor versicolor versicolor versicolor versicolor versicolor
## [97] versicolor versicolor versicolor versicolor virginica virginica
## [103] virginica virginica virginica virginica virginica virginica
## [109] virginica virginica virginica virginica virginica virginica
## [115] virginica virginica virginica virginica virginica virginica
## [121] virginica virginica virginica virginica virginica virginica
## [127] virginica virginica virginica virginica virginica virginica
## [133] virginica virginica virginica virginica virginica virginica
## [139] virginica virginica virginica virginica virginica virginica
## [145] virginica virginica virginica virginica virginica virginica
## Levels: setosa versicolor virginica
##
## setosa versicolor virginica
## 50 50 50
Temel paket hariç diğer paketlerdeki veri setlerine
data(veriseti, package="packagename") şeklinde
ulaşılabilir.
Eleman Seçme
Sütun seçince vektörel olarak veriyor. drop= ile satır
seçimindeki gibi df halini koruyacağız.
## ad boy kilo beden
## 1 Ali 160 55 S
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda"
## ad
## 1 Ali
## 2 Elif
## 3 Su
## 4 Deniz
## 5 Aras
## 6 Berk
## 7 Can
## 8 Ece
## 9 Efe
## 10 Arda
## [1] FALSE
## [1] TRUE
Veri seçimi için subset() komutu belirli koşullarda olan
verileri seçebilmemiz için kullanılabilir.
## ad boy kilo beden
## 3 Su 170 57 S
## 5 Aras 167 48 S
## 7 Can 169 58 M
subset(airquality, Day == 1, select = -Temp) #burada temp sütunu hariç birinci günü al demiş oluyoruz.## 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
Diamonds veri seti ile subset komutu kullanımı
library(ggplot2)
subset(diamonds, price> 1000 & cut== c("Fair", "Good")) #fiyatı 1000+ olan ve fair ile good kesimlerdeki elmasları seçmek için## # A tibble: 2,672 × 10
## carat cut color clarity depth table price x y z
## <dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 0.7 Good E VS2 57.5 58 2759 5.85 5.9 3.38
## 2 0.7 Fair F VS2 65.3 55 2762 5.63 5.58 3.66
## 3 0.91 Fair H SI2 64.4 57 2763 6.11 6.09 3.93
## 4 0.7 Good H VVS2 62.1 64 2767 5.62 5.65 3.5
## 5 0.71 Good E VS2 59.2 61 2772 5.8 5.88 3.46
## 6 0.83 Good I VS2 64.6 54 2774 5.85 5.88 3.79
## 7 0.71 Good F VS2 63.8 58 2777 5.61 5.64 3.59
## 8 0.7 Good E VS2 64.1 59 2777 5.64 5.59 3.6
## 9 0.98 Fair H SI2 67.9 60 2777 6.05 5.97 4.08
## 10 0.7 Good E VS1 57.2 62 2782 5.81 5.77 3.31
## # ℹ 2,662 more rows
## ad boy kilo beden
## 1 Ali 160 55 S
## 3 Su 170 57 S
## 5 Aras 167 48 S
## 9 Efe 160 45 S
## 10 Arda 164 47 S
## ad boy kilo beden
## 1 Ali 160 55 S
## 2 Elif 165 55 M
## 3 Su 170 57 S
## 4 Deniz 155 50 M
## 6 Berk 162 65 L
## 7 Can 169 58 M
## 8 Ece 158 62 L
Eleman Ekleme
Eleman çeşitli şekillerde eklenebilir.
$ operatörü
S3 sütunu ekleme (Yol 1)
## S1 S2
## 1 46 50.25650
## 2 55 55.37386
## 3 31 69.66596
## 4 63 66.58836
## 5 3 67.71707
## 6 29 55.18173
## S1 S2 S3
## 1 46 50.25650 66
## 2 55 55.37386 61
## 3 31 69.66596 62
## 4 63 66.58836 79
## 5 3 67.71707 70
## 6 29 55.18173 61
[[]] operatörü
ort sütunu ekleme (Yol 2)
## S1 S2 S3 ort
## 1 46 50.25650 66 54.09
## 2 55 55.37386 61 57.12
## 3 31 69.66596 62 54.22
## 4 63 66.58836 79 69.53
## 5 3 67.71707 70 46.91
## 6 29 55.18173 61 48.39
cbind () komutu
S4 sütunu ekleme (Yol 3)
## S1 S2 S3 ort S4
## 1 46 50.25650 66 54.09 10
## 2 55 55.37386 61 57.12 10
## 3 31 69.66596 62 54.22 10
## 4 63 66.58836 79 69.53 10
## 5 3 67.71707 70 46.91 10
## 6 29 55.18173 61 48.39 10
## 7 27 59.85594 74 53.62 10
## 8 13 51.65022 75 46.55 10
## 9 48 58.02381 70 58.67 10
## 10 41 67.44796 68 58.82 10
## 11 12 61.83218 74 49.28 10
## 12 26 67.12554 80 57.71 10
## 13 25 55.55468 62 47.52 10
## 14 62 62.79250 60 61.60 10
## 15 42 63.15938 65 56.72 10
## 16 19 58.05862 65 47.35 10
## 17 64 61.62857 63 62.88 10
## 18 17 55.69132 75 49.23 10
## 19 87 63.03255 72 74.01 10
## 20 45 69.64647 73 62.55 10
carpim adında sütun ekleme
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species carpim
## 1 5.1 3.5 1.4 0.2 setosa 17.85
## 2 4.9 3.0 1.4 0.2 setosa 14.70
## 3 4.7 3.2 1.3 0.2 setosa 15.04
## 4 4.6 3.1 1.5 0.2 setosa 14.26
## 5 5.0 3.6 1.4 0.2 setosa 18.00
## 6 5.4 3.9 1.7 0.4 setosa 21.06
carpim sütununu başa alma
## carpim Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 17.85 5.1 3.5 1.4 0.2 setosa
## 2 14.70 4.9 3.0 1.4 0.2 setosa
## 3 15.04 4.7 3.2 1.3 0.2 setosa
## 4 14.26 4.6 3.1 1.5 0.2 setosa
## 5 18.00 5.0 3.6 1.4 0.2 setosa
## 6 21.06 5.4 3.9 1.7 0.4 setosa
Eleman Çıkarma
- operatörü
## S1 S2 S3
## 1 46 50.25650 66
## 2 55 55.37386 61
## 3 31 69.66596 62
## 4 63 66.58836 79
## 5 3 67.71707 70
## 6 29 55.18173 61
## 7 27 59.85594 74
## 8 13 51.65022 75
## 9 48 58.02381 70
## 10 41 67.44796 68
## 11 12 61.83218 74
## 12 26 67.12554 80
## 13 25 55.55468 62
## 14 62 62.79250 60
## 15 42 63.15938 65
## 16 19 58.05862 65
## 17 64 61.62857 63
## 18 17 55.69132 75
## 19 87 63.03255 72
## 20 45 69.64647 73
Satır Ekleme
df3 <- data.frame(S1=c(50,60),S2=c(55.3,65.5)) #eklenecek veri seti
df4 <- rbind (df2,df3) #yeni veri seti
dim(df4)## [1] 22 2
Veri yapısını inceleme
## 'data.frame': 10 obs. of 4 variables:
## $ ad : chr "Ali" "Elif" "Su" "Deniz" ...
## $ boy : num 160 165 170 155 167 162 169 158 160 164
## $ kilo : num 55 55 57 50 48 65 58 62 45 47
## $ beden: Factor w/ 3 levels "L","M","S": 3 2 3 2 3 1 2 1 3 3
## $names
## [1] "ad" "boy" "kilo" "beden"
##
## $class
## [1] "data.frame"
##
## $row.names
## [1] 1 2 3 4 5 6 7 8 9 10
İsimlendirme
## isim boyolcum kiloolcum bedenolcum
## 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
## 7 Can 169 58 M
## 8 Ece 158 62 L
## 9 Efe 160 45 S
## 10 Arda 164 47 S
ya da
## isim boyolcum kiloolcum bedenolcum
## 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
## 7 Can 169 58 M
## 8 Ece 158 62 L
## 9 Efe 160 45 S
## 10 Arda 164 47 S
LİSTE
Listeler iki boyutludurlar ve pekçok türde veri türü içerebilirler.
İçerisinde vektör, matris, veri seti hatta liste bile barıdırabilir.
list() ile oluşturulur.
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)ad, boy ve kilo vektörleri ile liste oluşturma
## [[1]]
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda"
##
## [[2]]
## [1] 160 165 170 155 167 162 169 158 160 164
##
## [[3]]
## [1] 55 55 57 50 48 65 58 62 45 47
Listede neler var ?
## 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
Liste içindekiler isimlendirilebilir. Listelerde bileşenler numara [[1]] ya da $ ile eleman secilir.
## [[1]]
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda"
##
## [[2]]
## [1] 160 165 170 155 167 162 169 158 160 164
##
## [[3]]
## [1] 55 55 57 50 48 65 58 62 45 47
## $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
Listeler genellikle rapor oluşturmak için kullanılmaktadır.
require(stats); require(graphics)
fm1 <- lm(sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
summary(fm1)##
## Call:
## lm(formula = sr ~ pop15 + pop75 + dpi + ddpi, data = LifeCycleSavings)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.2422 -2.6857 -0.2488 2.4280 9.7509
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28.5660865 7.3545161 3.884 0.000334 ***
## pop15 -0.4611931 0.1446422 -3.189 0.002603 **
## pop75 -1.6914977 1.0835989 -1.561 0.125530
## dpi -0.0003369 0.0009311 -0.362 0.719173
## ddpi 0.4096949 0.1961971 2.088 0.042471 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.803 on 45 degrees of freedom
## Multiple R-squared: 0.3385, Adjusted R-squared: 0.2797
## F-statistic: 5.756 on 4 and 45 DF, p-value: 0.0007904