Ödevler

Bu sayfada “R Yazılımına Giriş” dersinde ödev olarak verilen alıştırmalar ile cevapları paylaşılacaktır.

Ödev-1

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

Ödev-2

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)]

Ödev-3

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)
  }

Ödev-4

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)
}

Ödev-5

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])
} 

Ödev-6

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)
}

Ödev-7

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:

Ödev-8

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"