Bu derste vektörleri tanımladık ve vektörler ile çeşitli işlemler yaptık. Vektör uzunluğunu belirlemek için length() fonksiyonunun kullanıldığını öğrendik.
sayisal_vektor<-c(1,2,3)
tam_sayi<-3L
tam_sayi
## [1] 3
typeof(tam_sayi)
## [1] "integer"
karakter_vektor<-c("a", "b", "c") #karakter vektorler cift tırnak icinde yazilir
karakter_vektor
## [1] "a" "b" "c"
mantiksal_vektor<- c(TRUE,TRUE,FALSE)
mantiksal_vektor
## [1] TRUE TRUE FALSE
a<- 1
length(a)
## [1] 1
x<-1
y<-1
x+y
## [1] 2
x<- c(1,2,3)
y<- c(4,5,6)
x+y
## [1] 5 7 9
length(x)==length(y)
## [1] TRUE
x-y
## [1] -3 -3 -3
x<- 1:9
y<- c(1,2,3)
length(x)==length(y)
## [1] FALSE
x+y
## [1] 2 4 6 5 7 9 8 10 12
x/y
## [1] 1.0 1.0 1.0 4.0 2.5 2.0 7.0 4.0 3.0
x<- 1:5
y<- c(1,2)
length(x)/length(y)
## [1] 2.5
x+y
## Warning in x + y: uzun olan nesne uzunluğu kısa olan nesne uzunluğunun bir katı
## değil
## [1] 2 4 4 6 6
Bir “ad” vektörü oluşturduk ve bu vektörden eleman seçebilmek için şu adımları uyguladık:
ad <- c("Ali","Elif","Su","Deniz","Aras","Berk","Can","Ece","Efe","Arda")
ad[1] #ad vektorunun 1. elemani
## [1] "Ali"
ad[5] #ad vektorunun 5. elemani
## [1] "Aras"
ad[length(ad)] #ad vektorunun son elemani
## [1] "Arda"
ad[c(1,5,8)] #ad vektorunun 1. 5. ve 8. elammanini yazdirir
## [1] "Ali" "Aras" "Ece"
ad[c(2:length(ad))] #ad vektorunun 2 den baslayarak en son elemanini yazdirir
## [1] "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe" "Arda"
ad[-1] #ad vektorunun 2 den baslayarak en son elemanini yazdirir
## [1] "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe" "Arda"
ad[-1] == ad[c(2:length(ad))]
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
ad[c(-1,-5)] #ad vektorunun 1. ve 5. elemanini haric tutar.
## [1] "Elif" "Su" "Deniz" "Berk" "Can" "Ece" "Efe" "Arda"
ad[-c(1,5)] #ad vektorunun 1. ve 5. elemanini haric tutar.
## [1] "Elif" "Su" "Deniz" "Berk" "Can" "Ece" "Efe" "Arda"
ad[c(-1,-5)]==ad[-c(1,5)]
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
ad[(length(ad)-2):length(ad)] #vektorun son uc elemanini yazdirir
## [1] "Ece" "Efe" "Arda"
Bu vektöre eleman eklemeyi öğrendik. Ayrıca bir vektörde araya eleman ekleyebilmek için append() fonksiyonunu kullandık.
ad[11] <-"Asu" ;ad #vektore eleman ekleme
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda" "Asu"
ad[12:13]<- c("Ahu", "Han");ad
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda" "Asu" "Ahu" "Han"
ad<-append (ad, "Taha", after=3) #araya eleman ekleme
ad
## [1] "Ali" "Elif" "Su" "Taha" "Deniz" "Aras" "Berk" "Can" "Ece"
## [10] "Efe" "Arda" "Asu" "Ahu" "Han"
Bir vektörü diğer vektörü isimlendirmek için kullandık.
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(50,55,57,50,48,65,58,62,45,47)
names(boy)
## NULL
names(boy) <- ad #boy vektorunu ad vektoru ile isimlendirmek icin
boy
## Ali Elif Su Deniz Aras Berk Can Ece Efe Arda
## 160 165 170 155 167 162 169 158 160 164
boy["Arda"]
## Arda
## 164
Örüntüler kullanarak farklı vektörler oluşturduk. Bunun için seq(), rep() ve paste() fonksiyonlarını kullandık.
seq(from=1, to=10,by=1)
## [1] 1 2 3 4 5 6 7 8 9 10
seq(1,10)
## [1] 1 2 3 4 5 6 7 8 9 10
seq(from=1, to=3, length=6)
## [1] 1.0 1.4 1.8 2.2 2.6 3.0
seq(from=1, to=3,by=0.5)
## [1] 1.0 1.5 2.0 2.5 3.0
seq(from=1, to=3, length.out=5)
## [1] 1.0 1.5 2.0 2.5 3.0
rep(c(3,4,5),3)
## [1] 3 4 5 3 4 5 3 4 5
rep(0:9 , 3) #aynı
## [1] 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
rep(0:9 , times=3) #aynı
## [1] 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
a<- c(3,5,7)
rep(a, each=3)
## [1] 3 3 3 5 5 5 7 7 7
rep(a, each=3, times=3)
## [1] 3 3 3 5 5 5 7 7 7 3 3 3 5 5 5 7 7 7 3 3 3 5 5 5 7 7 7
a<- c(1,2,3,4)
rep(a, each=2)
## [1] 1 1 2 2 3 3 4 4
a<- c(1,2,3)
rep(a, 1:3)
## [1] 1 2 2 3 3 3
#paste fonksiyonun ciktisi her zaman karakterdir
paste(1:4)
## [1] "1" "2" "3" "4"
class(paste(1:4))
## [1] "character"
paste("test",1:10)
## [1] "test 1" "test 2" "test 3" "test 4" "test 5" "test 6" "test 7"
## [8] "test 8" "test 9" "test 10"
paste("test", 1:10,"puan",sep = "_")
## [1] "test_1_puan" "test_2_puan" "test_3_puan" "test_4_puan" "test_5_puan"
## [6] "test_6_puan" "test_7_puan" "test_8_puan" "test_9_puan" "test_10_puan"
paste("test", c("A","B","C","D", 1:4))
## [1] "test A" "test B" "test C" "test D" "test 1" "test 2" "test 3" "test 4"
Rastgele veri oluşturmak için sample(), runif() ve rnorm() fonsiyonlarının kullanılabileceğini öğrendik.
?sample #(x, size, replace = FALSE, prob = NULL)
## httpd yardım sunucusu başlatılıyor ... tamamlandı
?runif #(n, min = 0, max = 1)
?rnorm #(n, mean = 0, sd = 1)
sample(0:100,5)
## [1] 52 96 57 90 3
runif(10, 0, 5)
## [1] 4.32317449 3.05190199 1.46517046 4.15380006 0.64338251 0.02527811
## [7] 1.22270765 4.06713097 1.70665829 4.92747337
rnorm(10,50,5)
## [1] 44.22947 54.85011 45.13780 51.30973 51.17784 45.51570 47.79046 49.66939
## [9] 45.39019 46.94971
sample(0:100,5,replace = T)
## [1] 71 57 9 78 64
hist(runif(100,0,5))
hist(rnorm(100,0,1))
Boy ve kilo vektörleri oluşturarak beden-kitle endeksi hesaplayacak bir fonksiyon yazdık.
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)
boy_m <- boy/100
names(boy_m)
## NULL
names(boy_m)<-ad
boy_m
## Ali Elif Su Deniz Aras Berk Can Ece Efe Arda
## 1.60 1.65 1.70 1.55 1.67 1.62 1.69 1.58 1.60 1.64
bki<-kilo/(boy_m*boy_m)
bki
## Ali Elif Su Deniz Aras Berk Can Ece
## 21.48437 20.20202 19.72318 20.81165 17.21109 24.76757 20.30741 24.83576
## Efe Arda
## 17.57812 17.47472
ortalama<- sum(bki)/length(bki) #same
ortalama
## [1] 20.43959
mean(bki) #same
## [1] 20.43959
round(ortalama,2)
## [1] 20.44
set.seed(10)
guc<-runif(10,0,1)
paste(1:10,sep = ".",(paste(" maddenin guclugu:",runif(n = 10,min = 0,1))))
## [1] "1. maddenin guclugu: 0.651655666995794"
## [2] "2. maddenin guclugu: 0.567737752571702"
## [3] "3. maddenin guclugu: 0.113508982118219"
## [4] "4. maddenin guclugu: 0.595925305271521"
## [5] "5. maddenin guclugu: 0.358049975009635"
## [6] "6. maddenin guclugu: 0.428809418343008"
## [7] "7. maddenin guclugu: 0.0519033221062273"
## [8] "8. maddenin guclugu: 0.264177667442709"
## [9] "9. maddenin guclugu: 0.398790730861947"
## [10] "10. maddenin guclugu: 0.836134143406525"
Karakter nesneleri belli bir yerden bölmek için substr() ve substring() fonksiyonlarını kullandık.
substr("YILMAZ", 1,3)
## [1] "YIL"
#substr (x, start, stop)
#substring (text, first, last = 1000000L)
substring("YILMAZ",1:6, 1:6)
## [1] "Y" "I" "L" "M" "A" "Z"
substring("YILMAZ",2, 4:6)
## [1] "ILM" "ILMA" "ILMAZ"
ad_soyad<- c("Ayse-Sel","Can-Yucel","Cem-Togay","Banu-Cift")
ad_soyad
## [1] "Ayse-Sel" "Can-Yucel" "Cem-Togay" "Banu-Cift"
ad_soyad_acik<- strsplit(ad_soyad, "-")
ad_soyad_acik
## [[1]]
## [1] "Ayse" "Sel"
##
## [[2]]
## [1] "Can" "Yucel"
##
## [[3]]
## [1] "Cem" "Togay"
##
## [[4]]
## [1] "Banu" "Cift"
ad <- unlist(ad_soyad_acik)[c(1,3,5,7)]
ad
## [1] "Ayse" "Can" "Cem" "Banu"
soyad <- unlist(ad_soyad_acik)[c(2,4,6,8)]
soyad
## [1] "Sel" "Yucel" "Togay" "Cift"
ogrenci<- c("ogrenci1","ogrenci2","ogrenci3","ogrenci4","ogrenci5")
ogrenci
## [1] "ogrenci1" "ogrenci2" "ogrenci3" "ogrenci4" "ogrenci5"
vize<- c(50,55,60,70,80)
vize
## [1] 50 55 60 70 80
final<- c(45,65,85,90,85)
final
## [1] 45 65 85 90 85
gecmenotu<- (vize+final)/2
gecmenotu
## [1] 47.5 60.0 72.5 80.0 82.5
names(gecmenotu)<- ogrenci
gecmenotu
## ogrenci1 ogrenci2 ogrenci3 ogrenci4 ogrenci5
## 47.5 60.0 72.5 80.0 82.5
min(gecmenotu)
## [1] 47.5
max(gecmenotu)
## [1] 82.5
mean(gecmenotu)
## [1] 68.5
toplam<- function(n){sum(1:n)}
toplam(5)
## [1] 15
toplam<- function(n){n*(n+1)/2 ; return("kaca kadar olan sayıların toplamı hesaplansın:")}
toplam(5) #buraya kadar yapabildim ????????
## [1] "kaca kadar olan sayıların toplamı hesaplansın:"