VEKTORLER
## [1] 2.5
## [1] 2 4 4 6 6
Vektördeki verileri toplamak için:
Vektördeki verileri çarpmak için:
Vektördeki verileri sıralamak ve tersine sıralamak için:
Vektördeki verilerin standart sapması için sd()
en
büyük veri için max ()
en büyük verinin kaçıncı veri
olduğunu görmek için which.max()
İndeksler
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda"
Vektörden veri seçmek için köşeli parantez [] kullanılmaktadır.
Birden fazla eleman seçmek istediğimizde ise c() komutu
içerisine yazılmalıdır.
## [1] "Ali"
## [1] "Ali" "Deniz" "Berk"
## [1] "Arda"
## [1] "Arda"
Vektöre eleman ekleme
Vektörden nesne çıkarmak ya da eklemek için nesnenin önüne “-” işareti konulmalıdır. Eklemek için ise yeni nesnenin sıra sayısı belirtilir ve eklenmek istenen nesne yazılır ve o sıraya atanır. Not: Tüm bu ekleme ya da çıkarma işlemlerini kaydetmeyi unutmamalıyız.
## [1] "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe" "Arda"
## [1] "Elif" "Su" "Aras" "Can" "Ece" "Efe" "Arda"
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda"
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda" "Esma"
## [1] "Ali" "Elif" "Su" "Deniz" "Aras" "Berk" "Can" "Ece" "Efe"
## [10] "Arda" "Esma" "Demet" "Samet"
## [1] "Ali" "Elif" "Su" "Deniz" "asli" "Aras" "Berk" "Can" "Ece"
## [10] "Efe" "Arda" "Esma" "Demet" "Samet"
İki farklı kodu tek satırda yazmak için “;” kullanılır.
Vektörleri isimlendirme
Az önceki vektörleri adlandırmak için öncelikle adlar boylar ile
eşleştirilir. Buradan şu anlaşılabilir: <- atama
operatörü ile nesnelere isim vermiş olmuyoruz. Bu vektörü yalnızca
kaydediyoruz. İsim atamak için names() kullanılmalıdır.
İsimlendirmekten vazgeçtiğimizde ise unname ()
kullanılır.
Örüntülerle vektörler oluşturma
Örüntülerle de vektör oluşturulabilir.
## [1] 1 2 3 4 5 6 7 8 9
Belirli kurallara göre de vektörler oluşturulabilir. Bunun için
seq() komutu kullanılabilir.
## [1] 1 2 3 4 5 6 7 8 9 10
## [1] 1.0 1.4 1.8 2.2 2.6 3.0
#aynısı seq(from=1, to=3, length=6)
seq(from=1, to=3, length.out=6) #bu komut ile dizide kaç eleman olacağını belirtiriz.## [1] 1.0 1.4 1.8 2.2 2.6 3.0
Vektörü tekrar ettirme
Vektörleri tekrar ettirmek için rep() komutu
kullanılabilir.
Aşağıda da görüldüğü üzere bu komutun içerisinde
yer alan each= ile times= birbirinden farklı
anlamlara gelir.
each= ile her bir nesne belirtildiği
kadar tekrar ettirilir.
times= ile vektör dizisi
belirtildiği kez tekrar ettirilir.
## [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
## [1] 3 3 3 5 5 5 7 7 7
## [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
## [1] 3 3 5 5 7 7 3 3 5 5 7 7 3 3 5 5 7 7
## [1] 3 3 3 5 5 5 7 7 7 3 3 3 5 5 5 7 7 7
## [1] 1 2 2 3 3 3
paste() komutu
Bu komut çıktıları her zaman karakterdir ve çeşitli birleştirmeler için kullanılır (id tanımlama gibi)
## [1] "1 2 3 4"
## [1] "test 1" "test 2" "test 3" "test 4" "test 5" "test 6" "test 7"
## [8] "test 8" "test 9" "test 10"
## [1] "test.1" "test.2" "test.3" "test.4" "test.5" "test.6" "test.7"
## [8] "test.8" "test.9" "test.10"
## [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"
## [1] "test_1_-0.05" "test_2_-0.63" "test_3_-0.8" "test_4_-0.82"
## [5] "test_5_-0.24" "test_6_0" "test_7_0.85" "test_8_0.62"
## [9] "test_9_-1.2" "test_10_-1.17"
## [1] "test A" "test B" "test C" "test D" "test 1" "test 2" "test 3" "test 4"
Rastgele veri oluşturma
## [1] 93 20 56 35 91
Alıştırma
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 <- boy/100
boy <- boy*boy
BKI <- round(kilo/boy, digits=1)
mean(BKI) ## [1] 20.44
ya da dersteki gibi yapılabilir:
# BKI hesaplanması
boy_m <- boy/100
BKI <- kilo/( boy_m * boy_m)
round(mean(BKI),2)
table(boy) #frekans tablosu oluşturmaPaste argümanında ayrıca sep= ve collapse=
argümanları var
Günün sorusu
bunun alternatif yolları var.
Yol 1.
## [1] "1.maddenin gucluğu: 0.51" "2.maddenin gucluğu: 0.31"
## [3] "3.maddenin gucluğu: 0.43" "4.maddenin gucluğu: 0.69"
## [5] "5.maddenin gucluğu: 0.09" "6.maddenin gucluğu: 0.23"
## [7] "7.maddenin gucluğu: 0.27" "8.maddenin gucluğu: 0.27"
## [9] "9.maddenin gucluğu: 0.62" "10.maddenin gucluğu: 0.43"
Yol 2.
paste1 <- paste(1:10, "maddenin gucluğu", sep=".")
paste2 <- paste(guc)
paste(paste1, paste2, sep=": ")## [1] "1.maddenin gucluğu: 0.51" "2.maddenin gucluğu: 0.31"
## [3] "3.maddenin gucluğu: 0.43" "4.maddenin gucluğu: 0.69"
## [5] "5.maddenin gucluğu: 0.09" "6.maddenin gucluğu: 0.23"
## [7] "7.maddenin gucluğu: 0.27" "8.maddenin gucluğu: 0.27"
## [9] "9.maddenin gucluğu: 0.62" "10.maddenin gucluğu: 0.43"
Karakter ve Mantıksal Nesneler
## [1] "YIL"
## [1] TRUE
## [1] TRUE
Nesneleri değiştirme
as. ile başlayan fonksiyonlarla nesne türleri arasında
değişilklik yaparız.
is. ile başlayan fonksiyonlarla bir nesnenin belirli bir
türde olup olmadığını kontrol ederiz.
Günün Sorusu
## [[1]]
## [1] "Ayse" "Sel"
##
## [[2]]
## [1] "Can" "Yucel"
##
## [[3]]
## [1] "Cem" "Togay"
##
## [[4]]
## [1] "Banu" "Cift"
## [1] "Ayse" "Can" "Cem" "Banu"
## [1] "Sel" "Yucel" "Togay" "Cift"
ya da
ad_soyad<- c("Ayse-Sel","Can-Yucel","Cem-Togay","Banu-Cift")
ad_soyad_acik <- strsplit(ad_soyad, split = "-")
function(x) {x[1]}## function (x)
## {
## x[1]
## }
## [1] "Ayse" "Can" "Cem" "Banu"
## [1] "Sel" "Yucel" "Togay" "Cift"
lapply l apply yani listenin tümü üzerinde uygula.
KENDINIZI TEST EDIN
SORU 1
Ogrenci <- "Ogrenci"
Ogrenci <- paste(Ogrenci, 1:5, sep="")
Vize <- c(50,55,60,70,80)
Final <- c(45,65,85,90,85)
Gecme_notu <- (Vize+Final)/2
Medyan <- median(Gecme_notu)
Std_Sapma <- round(sd(Gecme_notu), digits=2)
Varyans <- round(var(Gecme_notu), digits= 2)
minimum <- min(Gecme_notu)
Ortalama <- mean(Gecme_notu)
maksimum <- max(Gecme_notu)SORU 3
Bu sorunun cevabı ChatGPT ile elde edilmiştir.
#toplam <- function() {
# Kullanıcıdan sayı al
n <- as.integer(readline(prompt="Kaça kadar olan sayıların toplamı hesaplansın: "))
# Toplamı hesapla
sonuc <- sum(1:n)
# Sonucu yazdır
cat(1, "den", n, "'e kadar olan sayıların toplamı:", sonuc, "\n")}
# Fonksiyonu çalıştır
toplam()readline() komutu, ekrana bir komut yazdırmak için
kullanılır.
cat() fonksiyonu, print() fonksiyonundan
farklı olarak, çıktıda girdiğimiz verileri nesne olarak alır.
Örneğin, n argümanına n=5 değeri verildiğinde, bu değer doğrudan
kullanılır.
Ayrıca cat(), yukarıdaki gibi bir görünüm
sağlar ve tırnak içinde yazdığımız metin, direkt olarak çıktıya
yansır.
TURCADEMY BÖLÜM 2 SORU 1
isim <- c("Ali", "Defne", "Meltem", "Semih", "Sevda",
"Gizem", "Emre", "Zeynep", "Utku", "Beril")
vize <- c(60,70,50,80,65,70,85,70,92,80)
final <- c(70,65,50,45,67,75,80,85,95,85)
names(vize) <- isim
names(final) <- isim
vize[c("Ali", "Beril")]## Ali Beril
## 60 80
## Ali Beril
## 70 85
vize_ort <- mean(vize)
final_ort <- mean(final)
vize_sd <- sd(vize)
final_sd <- sd(final)
summary(vize)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 50.00 66.25 70.00 72.20 80.00 92.00
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 45.00 65.50 72.50 71.70 83.75 95.00
## Ali Defne Meltem Semih Sevda Gizem Emre Zeynep Utku Beril
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
## Ali Defne Meltem Semih Sevda Gizem Emre Zeynep Utku Beril
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
## Ali Defne Meltem Semih Sevda Gizem Emre Zeynep Utku Beril
## FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## Ali Defne Meltem Semih Sevda Gizem Emre Zeynep Utku Beril
## FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
## Ali Defne Meltem Semih Sevda Gizem Emre Zeynep Utku Beril
## TRUE FALSE FALSE FALSE TRUE TRUE FALSE TRUE TRUE TRUE
## [1] 9
## [1] 10
## [1] "Utku"
## [1] "Semih"
## Ali Defne Meltem Semih Sevda Gizem Emre Zeynep Utku Beril
## 66.0 67.0 50.0 59.0 66.2 73.0 82.0 79.0 93.8 83.0
## [1] 71.9
## [1] 70
## [1] 12.88315
## [1] 165.9756
## [1] 50
## [1] 93.8
## Named num [1:10] 66 67 50 59 66.2 73 82 79 93.8 83
## - attr(*, "names")= chr [1:10] "Ali" "Defne" "Meltem" "Semih" ...
## $names
## [1] "Ali" "Defne" "Meltem" "Semih" "Sevda" "Gizem" "Emre" "Zeynep"
## [9] "Utku" "Beril"
## Ali Defne Meltem Semih Sevda
## 66.0 67.0 50.0 59.0 66.2
## Ali
## 66
## named numeric(0)
## named numeric(0)