# 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
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
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
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.
‘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
e üzeri x:
exp(x)
exp(1)
## [1] 2.718282
|x| yani x sayısının mutlak değeri:
abs(x)
abs(3.705)
## [1] 3.705
abs(-2.51)
## [1] 2.51
x sayısının karekökü:
sqrt(x)
sqrt(121)
## [1] 11
sqrt(5.2)
## [1] 2.280351
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
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
R’da Π sayısı “pi” olarak bir sabit olarak yer alır.
pi sabiti
pi
## [1] 3.141593
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
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
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)
}
Ö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