10 kişiden oluşan bir gruptaki kişilerinin boy ve kilo ölçümleri için ise aşağıdaki vektör oluşturulmuştur.
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)
Eğer elimizdeki vektör isimlendirilmiş bir vektör ise eleman seçimini isimle de yapabiliriz.
#isimsiz boy vektorunames(boy) # names() fonksiyonu ile isimlendirme yapılabilir.
NULL
ad vektörünü boy vektörü ile isimlendirirken nasıl kullanabiliriz?
names(boy) <- adboy
Ali Elif Su Deniz Aras Berk Can Ece Efe Arda
160 165 170 155 167 162 169 158 160 164
Arda’nın boyunu isimlendirilmiş vektörü kullanarak boy["Arda"] ile yazdırırsınız
boy["Arda"]
Arda
164
Örüntülerle Vektör Oluşturma
Vektör oluşturmanın farklı yolları bulunmaktadır. En basit yolu iki nokta ":" operatörünü kullanmaktır.
rakamlar <-0:9rakamlar
[1] 0 1 2 3 4 5 6 7 8 9
büyükten küçüğe rakamlardan vektör oluşturulması
rakamlar <-9:0rakamlar
[1] 9 8 7 6 5 4 3 2 1 0
seq()
Belirli bir kurala göre sayı dizileri oluşturmak için ise seq(), rep() ve paste() fonksiyonlarından yararlanılabilir. İlk olarak bu fonksiyonların yardım sayfalarını inceleyelim.
1’den 10’a kadar birer birer artan sayılardan dizi oluşturulacak kodu oluşturunuz.
Bir önceki işlemi argümansız olarak oluşturunuz.
Aynı çıktıyı tek bir argümanla elde edebilir misiniz?
length argümanını kullanarak aşağıdaki çıktıyı oluşturacak kodu oluşturunuz.
Buraya bakmadan önce kendin denemelisin!
seq(from =1, to=3, length =6)
[1] 1.0 1.4 1.8 2.2 2.6 3.0
by argümanını ile artış miktarını kullanarak aşağıdaki çıktıyı oluşturacak kodu oluşturunuz.
Buraya bakmadan önce kendin denemelisin!
seq(from=1,to=3,by=0.5)
[1] 1.0 1.5 2.0 2.5 3.0
Belirli bir aralıkta kaç elemanın yer alacağını length.out argümanı kullanarak aşağıdaki çıktıyı oluşturacak kodu oluşturunuz.
[1] 1.0 1.5 2.0 2.5 3.0
rep()
rep() fonksiyonu için örnekler
# üç elemanlı bir vektörün üç kere tekrar ettirilmesirep(c(3,4,5), 3)
[1] 3 4 5 3 4 5 3 4 5
# rakamların üç kere tekrar ettirilmesirep(0:9, times =3)
Farklı fonksiyonlarla rastgele veri üretilebilir. Örneğin 0-100 arasında 20 farklı değer elde edilmek istenilsin. Bunu yapmak için sample(),runif() ya da rnorm() fonksiyonlarından yararlanılabilir.
Kullanılan üç fonksiyonun da yardım sayfalarını ve kullanım amaçlarını inceleyiniz.
Alıştırma
BKI vücut ağırlığınızın metre cinsinden boy uzunluğunun karesine bölünmesi ile elde edilmektedir. Her bir bireye ait BKI değerini hesaplayınız. BKI değerlerinin ortalaması kaçtır (iki ondalığa yuvarlayınız)?
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)
Aşağıdaki çıktıyı oluşturacak olan kodu oluşturunuz. Madde güçlük değerlerini runif() fonksiyonu ile oluşturabilirsiniz. Çıktının aynı olmasını istiyorsanız set.seed() fonksiyonunun 10 değeri ile kullanınız.
Bunun birden fazla yolu olabilir, farklı şekillerde yapabilirsiniz.
Büyük Küçük Harf Düzenleme Fonksiyonları
toupper() ve tolower()
toupper(harf5)
[1] "A" "B" "C" "D" "E"
tolower(harf5)
[1] "a" "b" "c" "d" "e"
casefold() fonksiyonu da upper argümanı ile birlikte kullanılabilir.
casefold(harf5, upper =FALSE)
[1] "a" "b" "c" "d" "e"
casefold(harf5, upper =TRUE)
[1] "A" "B" "C" "D" "E"
Karakter nesnelerin kaç harften oluştuğu nchar() fonksiyonu ile belirlenebilir.
nchar(month.name)
[1] 7 8 5 5 3 4 4 6 9 7 8 8
Karakter nesneleri belli bir yerden bölmek icin substr() ve substring() fonksiyonları kullanılabilir.
substr("YILMAZ", 1,3)
[1] "YIL"
substring("YILMAZ", 1:.. , 1:6) kodu ile aşağıdaki çıktıyı oluşturacak kodu yazınız
Buraya bakmadan önce kendin denemelisin!
substring("YILMAZ", 1:6 , 1:6)
[1] "Y" "I" "L" "M" "A" "Z"
substring("YILMAZ", ... , 4:6) kodu ile aşağıdaki çıktıyı oluşturacak kodu yazınız
Buraya bakmadan önce kendin denemelisin!
substring("YILMAZ", 2 , 4:6)
[1] "ILM" "ILMA" "ILMAZ"
Karakter nesnelerde daha fazlası için aşağıdaki fonksiyonları inceleyebilirsiniz.
strsplit()
noquote()
cat()
grep()
duplicated()
agrep()
Mantıksal Nesneler
mantiksal1 <-TRUE
typeof(mantiksal1)
[1] "logical"
mantiksal1
[1] TRUE
Mantıksal operatörler programlamanın temeli ve vazgeçilmezidir.
# eşitlik sınamasıT==TRUE
[1] TRUE
4==5 kodunun sonucu nedir?
4<5 kodunun sonucu nedir?
10>100 kodunun sonucu nedir?
Mantıksal operatörlerle yapılan sınamalar ile mantıksal nesneler oluşturulur.
sonuc <-4<5typeof(sonuc)
[1] "logical"
Nesne türleri arasındaki değişim uygunluk durumuna göre as.*()fonksiyonları ile sağlanır.
# Karakter veri numerik veriyeas.numeric("3.14")
[1] 3.14
# ondalık verin tam sayıyaas.integer(pi)
[1] 3
# karakter veri numerik veriye (NA)as.numeric("olcme")
[1] NA
# mantıksal veri karakter veriye (NA)as.character(TRUE)
[1] "TRUE"
# numerik veri karakter veriyeas.character(10)
[1] "10"
# mantıksal veri numerik veriyeas.numeric(TRUE)
[1] 1
Nesne Türleri Sorgulama
Nesne türleri sorgulamak için ise class() ya da mode() fonksiyonları kullanabilir. Ancak bir nesne türüne ait olup olmadığını sorgulamak için ise is.*() fonksiyonları kullanılır.
x<-3.14; class(x)
[1] "numeric"
is.numeric(x)
[1] TRUE
is.logical(x)
[1] FALSE
Sayısal nesnelerin türü için typeof() fonksiyonu da kullanılabilir.
y <-2L; typeof(y); class(y) # satir içi kod ayırma
S1. Aşağıdaki tabloda yer alan üç sütun için birer vektör oluşturunuz. Öğrencilerin geçme notu her iki sınavın ortalaması olarak hesaplanacaktır. Bu öğrencilerin geçme notlarını hesaplayınız. Geçme notlarının betimsel istatistiklerini hesaplayınız.
Öğrenci
Vize
Final
Ogrenci1
50
45
Ogrenci2
55
65
Ogrenci3
60
85
Ogrenci4
70
90
Ogrenci5
80
85
Geçme notlarının minumum değeri:Geçme notlarının ortalama değeri:Geçme notlarının maksimum değeri:
S2. Birden n’e kadar olan sayların toplamını hesaplayan fonksiyon yazımı toplam() tek argümanlı fonksiyon oluşturunuz. Argüman değeri 5 olduğunda 1+2+3+4+5=15 değerini versin.
birden n’e kadar olan sayların toplamı: (n*(n+1))/2
S3. 1’den n’ e kadar olan sayıların toplamını hesaplayan fonksiyonu argümansız olarak aşağıdaki şekilde yazmayı deneyiniz. Fonksiyonu çalıştırdığınızda ekranda/konsolda kaça kadar olan sayların toplamı hesaplansın: yazsın, kullanıcının girdiği değere göre aşağıda çıktısı çıksın.
toplam()kaça kadar olan sayların toplamı hesaplansın:10[1" 10 'e kadar olan sayların toplamı: 55
ODEV
Kitap Bölüm 2 1. Soruyu tamamlayınız.
swirl package - learn R in R (Programming ilk 9 modul) bitimediyseniz tamamlayınız