Bu dökümandaki alıştırmalar ilgili temel R eğitim dökümanı tamamlandıktan sonra yapılabilir. Kodunuzun çıktısı sorularda verilen çıktı ile benzer olmalıdır. Bazı komutların önünde set.seed() fonksiyonu bulunmaktadır. Rastgelelik içeren işlemlerde herkesin aynı sonucu bulabilmesi için kullanılmaktadır.

Alıştırma 0

Varsayalım ki bugünkü Dolar/TL kuru 3.70. Önümüzdeki 60 günün dolar tahminini aşağıdaki formül ile hesaplıyoruz.

#Aşağıdaki iki satırı kopyala yapıştır ile
set.seed(135)
dolar<-round(3.7*exp(cumsum((0.02-0.5*(0.2^2))/252 + 0.2*rnorm(60)*sqrt(1/252))),4)

#İlk 10 gün ile kendi verilerinizi kontrol edin.
print(dolar[1:10])
##  [1] 3.6793 3.6578 3.6530 3.7184 3.6572 3.6685 3.7246 3.7040 3.7238 3.7693

Dolar tahmin verisiyle aşağıdaki bilgileri hesaplayın.

  1. En düşük ve en yüksek değerlerini hesaplayın. (En düşük: 3.6047. En yüksek: 3.884)
  2. En düşük ve en yüksek değerdeki günlerini bulun. (En düşük: 25. gün. En yüksek: 55. gün.)
  3. Tahminlerin ortalama değerini ve standart sapmasını hesaplayın. (Ortalama: 3.7303. Standart sapma: 0.08.)
  4. Doların 3.85 ve üstü olduğu günleri bulun. (53, 55)
  5. Dolar bu günlerin kaç tanesinde düşüş gösterdi? (Bugün 3.7 olduğunu unutmayın.) (28)
  6. Doların aldığı en yüksek 10. değer kaçtır? (3.8245)
  7. Doların arka arkaya en çok düştüğü gün sayısını ve hangi günler arasında düştüğünü bulun. (4 gün. 16. günden 19. güne kadar.)
  8. Doların değerinin 6 kuruş veya daha fazla değiştiği günleri bulun. (4, 5, 16, 23, 56)
  9. Eğer yatırım yapacak bir günüm olsaydı hangi gün dolar alsaydım ertesi gün sattığımda karım en fazla olurdu? (3. gün. Yüzde 3 kar.)
  10. Diyelim bugün 100 liram var. Dolar alıp satarak 60 günün sonunda en fazla kaç lira kar ederdim? (27.77 lira.)

Alıştırma 1 (FizzBuzz)

1’den 15’e kadar bir döngü içerisinde eğer değer 3 ile tam bölünebiliyorsa “Akademik”, 5 ile tam bölünebiliyorsa “Bilişim”, 15 ile tam bölünebiliyorsa “Akademik Bilişim” yazdırın (Not: 15’te ayrıca Akademik veya Bilişim yazılmamalı.). (İpucu: Bölünebilirliği modüler aritmetik operatörü %% ile yapabilirsiniz. Örneğin 4%%3 1 değerini verirken 4%%2 0 değerini verir..)

## [1] 1
## [1] 2
## [1] 3
## [1] "Akademik"
## [1] 4
## [1] 5
## [1] "Bilişim"
## [1] 6
## [1] "Akademik"
## [1] 7
## [1] 8
## [1] 9
## [1] "Akademik"
## [1] 10
## [1] "Bilişim"
## [1] 11
## [1] 12
## [1] "Akademik"
## [1] 13
## [1] 14
## [1] 15
## [1] "Akademik Bilişim"

(İsteğe bağlı ek alıştırma) Bunu bir döngü olmadan yapmaya çalışın.

##                  1                  2                  3 
##                 ""                 ""         "Akademik" 
##                  4                  5                  6 
##                 ""          "Bilişim"         "Akademik" 
##                  7                  8                  9 
##                 ""                 ""         "Akademik" 
##                 10                 11                 12 
##          "Bilişim"                 ""         "Akademik" 
##                 13                 14                 15 
##                 ""                 "" "Akademik Bilişim"

Alıştırma 2 (Gezgin Satıcı)

Aşağıdaki veri seti 10 şehrin birbirinden olan uzaklıklarını belirtmektedir.

#Uzaklik matrisini almak için aşağıdaki dört satırı kopyalayıp yapıştırın.
set.seed(2017)
uzaklik_matrisi<-matrix(sample(10:50,100,replace=TRUE),ncol=10)
uzaklik_matrisi[lower.tri(uzaklik_matrisi)]<-0
uzaklik_matrisi <- uzaklik_matrisi + t(uzaklik_matrisi)
diag(uzaklik_matrisi)<-0

uzaklik_matrisi
##       [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
##  [1,]    0   37   35   46   32   31   20   50   15    45
##  [2,]   37    0   25   10   34   46   25   38   45    36
##  [3,]   35   25    0   22   18   24   34   16   30    31
##  [4,]   46   10   22    0   13   36   40   46   47    32
##  [5,]   32   34   18   13    0   40   39   49   19    44
##  [6,]   31   46   24   36   40    0   29   25   17    15
##  [7,]   20   25   34   40   39   29    0   26   16    43
##  [8,]   50   38   16   46   49   25   26    0   16    18
##  [9,]   15   45   30   47   19   17   16   16    0    46
## [10,]   45   36   31   32   44   15   43   18   46     0

Bu şehirlerde gezen bir satış görevlisi düşünün. Verilen herhangi bir rota için satıcının gideceği toplam mesafeyi bulan bir fonksiyon yazınız. Bu fonksiyon uzaklık matrisini de girdi olarak alsın.

Şehir rotası 1-5-2-6-7-2-4-1 olan bir satışçının toplam aldığı mesafeyi hesaplayın.

toplam_mesafe_hesapla(uzaklik_verisi=uzaklik_matrisi,rota_bilgisi=c(1,5,2,6,7,2,4,1))
## [1] "Toplam mesafe: 222"

Alıştırma 3 (Sayı Tahmin Oyunu)

Bilgisayara 1 ile 100 arasında rastgele bir sayı tutturun ve kullanıcının bu sayıyı tahmin etmesini sağlayın. Her tahminde kullanıcının tahmininin bilgisayarın tuttuğu sayıdan düşük veya yüksekse bunu belirtin. Kullanıcı 10 tahminde sonucu alamıyorsa oyunu bitirin.

## [1] "Bir sayı tuttum. Bakalım bilebilecek misin? 10 tahmin hakkın var."
## [1] "1 ile 100 arasında bir sayı girin: 54"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 55"
## [1] "Kalan tahmin hakkın: 9"
## [1] "1 ile 100 arasında bir sayı girin: 76"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 77"
## [1] "Kalan tahmin hakkın: 8"
## [1] "1 ile 100 arasında bir sayı girin: 83"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 84"
## [1] "Kalan tahmin hakkın: 7"
## [1] "1 ile 100 arasında bir sayı girin: 97"
## [1] "Tuttuğum sayı tahmininden düşük."
## [1] "Üst 96"
## [1] "Kalan tahmin hakkın: 6"
## [1] "1 ile 100 arasında bir sayı girin: 94"
## [1] "Tuttuğum sayı tahmininden düşük."
## [1] "Üst 93"
## [1] "Kalan tahmin hakkın: 5"
## [1] "1 ile 100 arasında bir sayı girin: 84"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 85"
## [1] "Kalan tahmin hakkın: 4"
## [1] "1 ile 100 arasında bir sayı girin: 88"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 89"
## [1] "Kalan tahmin hakkın: 3"
## [1] "1 ile 100 arasında bir sayı girin: 91"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 92"
## [1] "Kalan tahmin hakkın: 2"
## [1] "1 ile 100 arasında bir sayı girin: 92"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 93"
## [1] "Kalan tahmin hakkın: 1"
## [1] "1 ile 100 arasında bir sayı girin: 63"
## [1] "Tuttuğum sayı tahmininden yüksek."
## [1] "Alt 64"
## [1] "Kalan tahmin hakkın: 0"
## [1] "Oyun bitti :/"