Sayı Yuvarlama:

round()

  1. Tamsayıya yuvarlama: round(x)
  2. Belli bir basamak sayısında yuvarlama: round(x, d)
# round ile yuvarlama

x <- 4.205
print(round(x))
## [1] 4
print(round(x,1))
## [1] 4.2
y <- 4.85
print(round(y))  
## [1] 5
print(round(y,1))
## [1] 4.8

floor()

Bir alt tamsayıyı verir: floor(x)

# floor ile yuvarlama

x <- 4.205
print(floor(x))
## [1] 4
y <- 4.85
print(floor(y))
## [1] 4

ceiling()

Bir üst tamsayıyı verir: ceiling(x)

# floor ile yuvarlama

x <- 4.205
print(ceiling(x))
## [1] 5
y <- 4.85
print(ceiling(y))
## [1] 5

Örnek 1

Dünyada kalan petrol rezervinin yaklaşık 1650585140000 varil ve yıllık petrol tüketiminin 97103871 varil/gün olduğu biliniyor. Buna göre Dünyada kalan petrol rezervlerinin ömrü “yıl- ay - gün” olarak nedir?

# Dünyada kalan petrol rezervini yıl- ay - gün olarak yazdır

Rezerv <- 1650585140000  #varil
Tuketim <- 97103871      #varil/gün
Kalan <- (Rezerv/Tuketim)/365    #yıl

yil=floor(Kalan)
ay=floor(12*(Kalan-yil))
gun=floor(365*(Kalan-yil-(ay/12)))
cat("Kalan rezerv: ")
## Kalan rezerv:
cat(yil,"yıl",ay,"ay ve",gun,"gündür.")
## 46 yıl 6 ay ve 25 gündür.

Matematiksel Fonksiyonlar

Logaritma: log()

‘e tabanına göre logaritma’

log(x)

‘2 tabanına göre logaritma’

log2(x)       

‘10 tabanına göre logaritma’

log10(x)

‘t tabanına göre logaritma’

log(x,t)
log(2.71)    
## [1] 0.9969486
log10(10)
## [1] 1

Üstel: exp()

e üzeri x:

exp(x)
exp(1)
## [1] 2.718282

Mutlak Değer: abs()

|x| yani x sayısının mutlak değeri:

abs(x)
abs(3.705)
## [1] 3.705
abs(-2.51)
## [1] 2.51

Karekök: sqrt()

x sayısının karekökü:

sqrt(x)
sqrt(121)
## [1] 11
sqrt(5.2)
## [1] 2.280351

Trigonometrik Fonksiyonlar: sin(), cos(), tan(), …

x açısının radyan cinsinden olmak üzere sinüs, kosinüs ve tanjant değerleri:

sin(x)   
cos(x)
tan(x)
sin(30)  # Sonuç beklendiği gibi 0.5 çıkmayacak; çünkü burada açı değeri 30 radyandır.
## [1] -0.9880316

Radyan

Visual Basic, Python veya R gibi birçok programlama dilinde veya Excel gibi hesap tablosu (spreadsheet) yazılımında trigonometrik fonksiyonlar varsayılan olarak radyan cinsinden kabul edilir. Eğer derece cinsinden bir açı kullanmak istiyorsanız, bunu bir dönüşüm fonksiyonu kullanarak öncelikle radyana dönüştürmeniz gereklidir.

Dönüşüme esas bağıntı:

2Π = 360°
Π = 180°

180° --> pi

pi sabiti

R’da Π sayısı “pi” olarak bir sabit olarak yer alır.

pi sabiti

pi
## [1] 3.141593

Derece Radyan Dönüşümü

Dönüşüm bağıntısı şöyle belirlenebilir:

180° = pi
1° = pi/180

x° = x(pi/180) yani Açı(Derece) = Açı(Radyan)(pi/180)

Daha açık ifade etmek gerekirse radyanı “pi/180” ile çarparak açınının derece cinsinden karşılığı belirlenebilir.

30°’nin sinüsünü yazdıralım.

x <- 30
s <- sin(x*pi/180)
print(s)
## [1] 0.5

Örnek

Klavyeden girilen bir sayının sinüsünü hesaplayan bir R kodu yazalım.

x <- readline()
x <- as.numeric(x)
s <- sin(x*pi/180)
print(s)
## [1] NA

readline() klavyeden kullanıcı gişine olanak veren bir fonksiyon olup okunan girdi karakter (string) olarak saklanır. as.numeric() karakter olarak saklanan veriyi sayısal hale dönüştürür.

Klavyeden sayı girmeden önce açıklama yazalım.

x <- as.numeric(readline("Açı = "))
## Açı =
s <- sin(x*pi/180)
print(s)
## [1] NA

Özel Fonksiyon Tanımlama

R’da kullanıcı tarafından özel fonksiyonlar aşağıdaki gibi tanımlanabilir:

FonksiyonAdi <- function(Girdi){
  Ön İşlemler
  Çıktı <- ...
return(Çıktı)
}

Örnek bir özel fonksiyon. Bu fonksiyon girdiye 3 ekler.

UcEkle <- function(x){
  y <- x + 3
  return(y)
}

Derece’den Radyan’a Dönüşüm Fonksiyonu

der2rad <- function(derece) {
  radyan <- derece*pi/180
  return(radyan)
}

Örnek Soru

Ödev 1 Soru 3’teki verileri kullanarak Şubat ayında sıcaklık farkının en düşük ve en yüksek olduğu günleri ve bu günlerdeki sıcaklık farkını yazdıran bir kod yazın.

gun <- 1:28
MakS <- c(11,10,10,12,17,19,20,20,20,22,23,20,18,10,8,10,8,8,9,10,11,15,19,22,22,21,13,18)
MinS <- c(-2,-5,-2,-3,4,0,-1,3,0,1,6,8,4,4,7,6,6,5,5,0,-2,-3,-3,1,1,4,0,6)
Fark <- MakS-MinS
FarkMin <- min(Fark)
FarkMak <- max(Fark)
FarkMinGun <- which(Fark <= FarkMin)
FarkMakGun <- which(Fark >= FarkMak)

cat(FarkMinGun,".gün sıcaklık farkı en düşüktür. "," Sıcaklık farkı= ", FarkMin,"°C'dir", "\n")
## 15 .gün sıcaklık farkı en düşüktür.   Sıcaklık farkı=  1 °C'dir
cat(FarkMakGun,".gün sıcaklık farkı en yüksektir."," Sıcaklık farkı= ", FarkMak,"°C'dir", "\n")
## 23 .gün sıcaklık farkı en yüksektir.  Sıcaklık farkı=  22 °C'dir