Bu sayfada “R Yazılımına Giriş” dersinde ödev olarak verilen alıştırmalar ile cevapları paylaşılacaktır.
Kullanıcı tarafından girilecek bir harfle baslayan nesneleri cagırcak bir fonksiyon yazınız.
nesnegetir<-function() {
nesne<-readline(prompt = "cagirmak istediginiz nesnenin ilk harfini giriniz: ")
nesne<-as.character(nesne)
harf<-paste(ls(pattern=paste("^",nesne,sep=""), envir=.GlobalEnv))
print(harf)
}
Not: istenilen nesnelerinin cagrillabilmesi icin fonksiyon nesnelerini envir=.GlobalEnv ile calisma alani ortamina tasimis olduk
R’da tanimli olan LETTERS nesnesinden faydalanarak Turkce Alfabeyi hazirlayiniz.
TRalfabe<-append(LETTERS,"Ç",3)
TRalfabe<-append(TRalfabe,"Ğ",8)
TRalfabe<-append(TRalfabe,"İ",11)
TRalfabe<-append(TRalfabe,"Ö",18)
TRalfabe<-append(TRalfabe,"Ş",23)
TRalfabe<-append(TRalfabe,"Ü",26)
TRalfabe<-TRalfabe[-c(21,29,30)]
Birden n’e kadar olan sayilarin toplamini hesaplayan fonksiyon yazimi. toplam() tek argumanli fonksiyon olsurunuz. Arguman degeri 5 oldugunda 1+2+3+4+5=15 degerini versin.
toplam<-function() {
sayi1<-readline(prompt = "sayiyi giriniz: ")
sayi1<-as.integer(sayi1)
sayi2<-1:sayi1
x<-length(sayi2)
tdegeri<-paste("1'den girdiginiz sayiya kadar olan sayilarin toplam degeri: ",
(x*(x+1))/2)
print(tdegeri)
}
Yazilan kare_toplam() fonksiyonu 1’den n’e kadar olan sayilarin karelerinin toplamini versin. Not: KT=(n(n+1)(2n+1))/6
ktop<-function() {
sayi1<-readline(prompt = "sayiyi giriniz: ")
sayi1<-as.integer(sayi1)
sayi2<-1:sayi1
x<-length(sayi2)
KT<-paste("1'den girdiginiz sayiya kadar olan sayilarin kareler toplami: ",
(x*(x+1)*(2*x+1)/6))
print(KT)
}
Elinizde bulunan asagida yer alan ad_soyad nesnesini kullanarak asagidaki ciktiyi olusturmaya calisiniz.
ad_soyad<- c(“Ayse-Sel”,“Can-Yucel”,“Cem-Togay”,“Banu-Cift”)
## [1] “Ayse-Sel” “Can-Yucel” “Cem-Togay” “Banu-Cift” ## [1] “Ayse” “Can” “Cem” “Banu” ## [1] “Sel” “Yucel” “Togay” “Cift”
coz<-function(x) {
yeni<-matrix(unlist(strsplit(x, "[-]")),length(x),2,TRUE)
print(yeni[,1])
print(yeni[,2])
}
islem adinda iki argumanli bir fonksiyon yaziniz. Yazdiginiz fonksiyon girilen iki degerin toplamini, farkini, carpimini ve bolumunu versin. Yazdiginiz #fonksiyonun asagidaki ciktilari vermesi beklenmektedir.
## [1] 4.0000000 -2.0000000 3.0000000 0.3333333
islem<-function() {
a<-readline(prompt = "Birinci sayiyi giriniz: ")
b<-readline(prompt = "ikinci sayiyi giriniz: ")
a<-as.double(a)
b<-as.double(b)
sonuc<- paste(c(a+b,a-b,a*b, a/b))
print(sonuc)
}
Sırayla degisken adları TamSayi, OndalikSayi, Karakter, Mantiksal, Faktor olan 5 değişkenli hiçbir gözlemi olmayan bir data.frame oluşturmanızı ve bu data.framenin yapısını yazdırmanızı bekliyorum. Beklenen çıktı aşağıdaki gibi olmalıdır.
## [1] "Bos data.framenin yapısı:"
## 'data.frame': 0 obs. of 5 variables:
## $ TamSayi : int
## $ OndalikSayi: num
## $ Karakter : chr
## $ Mantiksal : logi
## $ Faktor : Factor w/ 0 levels:
## NULL
tam_sayi<-as.integer()
ondalik_sayi<-as.double()
karakter<-as.character()
mantiksal<-as.logical()
Faktor<-factor(x=character())
df<-data.frame(tam_sayi,ondalik_sayi,karakter,mantiksal,Faktor)
str(df)
## 'data.frame': 0 obs. of 5 variables:
## $ tam_sayi : int
## $ ondalik_sayi: num
## $ karakter : chr
## $ mantiksal : logi
## $ Faktor : Factor w/ 0 levels:
Aşağıda size verilen dört vektörden bir veri seti oluşturunuz. Oluşturduğunuz veri setinin deneme sütunundaki eksik veri sayısını hesaplayan komut yazınız.
ad = c('Su', 'Pera', 'Sule', 'Can', 'Cem', 'Name', 'Aras', 'Mete', 'Kaan', 'Pelin')
puan = c(12.5, 9, 16.5, 12, 9, 20, 14.5, 13.5, 8, 19)
deneme = c(1, NA, 2, NA, 2, NA, 1, NA, 2, 1)
bonus = c(1,0,1, 0, 0, 1, 1, 0,0, 1)
## [1] "Deneme sütunundaki NA sayisi:"
## [1] 4
ad = c('Su', 'Pera', 'Sule', 'Can', 'Cem', 'Name', 'Aras', 'Mete', 'Kaan', 'Pelin')
puan = c(12.5, 9, 16.5, 12, 9, 20, 14.5, 13.5, 8, 19)
deneme = c(1, NA, 2, NA, 2, NA, 1, NA, 2, 1)
bonus = c(1,0,1, 0, 0, 1, 1, 0,0, 1)
df<-data.frame(ad,puan,deneme,bonus)
paste("Deneme sutunundaki eksik veri sayisi: ", sum(is.na(df$deneme)))
## [1] "Deneme sutunundaki eksik veri sayisi: 4"