Fonskiyonun assert ile oluşturulması
set.seed(358)
bonus1 <- data.frame(
ogrenci = c("ARIF ARSLAN","ASLI YORUK","ATA CANTURK DOGRUL",
"AYBUKE DOGAC","AYSE TUNA","BURCAK GONUL AYDIN",
"CAGATAY COSKUN","EMRE GONEN","FEYZI GUNES",
"FURKAN ATMACA", "HARUN DILEK","KORKUT KOCAK",
"MEHMET YILMAZ","RAMAZAN SOYUK",
"SEMIH TOPUZ","SINEM COSKUN"),
ara_sinav = sample(0:100, 16))
head(bonus1)
## ogrenci ara_sinav
## 1 ARIF ARSLAN 87
## 2 ASLI YORUK 45
## 3 ATA CANTURK DOGRUL 12
## 4 AYBUKE DOGAC 91
## 5 AYSE TUNA 66
## 6 BURCAK GONUL AYDIN 65
secim <- function(veri, n = 4, w) {
assert(is.data.frame(veri) == T, ncol(veri) <= 2)
sample_n(veri, n, weight = w)
}
secim(bonus1, w = bonus1$ara_sinav)
## ogrenci ara_sinav
## 1 SEMIH TOPUZ 79
## 2 BURCAK GONUL AYDIN 65
## 3 SINEM COSKUN 71
## 4 EMRE GONEN 33
Fonksiyonun if ile oluşturulması ve stop ile hata mesajı yerleştirilmesi
secim_2 <- function(x, n = 4, w) {
if (is.data.frame(x) == FALSE | ncol(x) > 2) {
stop(
"Veri seti haricinde bir tür girildi veya girilen veri setinin ikiden fazla sütunu var"
)
}
return(sample_n(x, n, weight = w))
}
secim_2(bonus1, w = bonus1$ara_sinav)
## ogrenci ara_sinav
## 1 ARIF ARSLAN 87
## 2 SINEM COSKUN 71
## 3 AYBUKE DOGAC 91
## 4 BURCAK GONUL AYDIN 65
stop ile yazılan hata mesajının test edilmesi
set.seed(42)
bonus2 <- data.frame(
ogrenci = c("ARIF ARSLAN","ASLI YORUK","ATA CANTURK DOGRUL",
"AYBUKE DOGAC","AYSE TUNA","BURCAK GONUL AYDIN",
"CAGATAY COSKUN","EMRE GONEN","FEYZI GUNES",
"FURKAN ATMACA", "HARUN DILEK","KORKUT KOCAK",
"MEHMET YILMAZ","RAMAZAN SOYUK",
"SEMIH TOPUZ","SINEM COSKUN"),
vize = sample(0:100, 16),
final= sample(0:100, 16))
head(bonus2)
## ogrenci vize final
## 1 ARIF ARSLAN 48 35
## 2 ASLI YORUK 64 94
## 3 ATA CANTURK DOGRUL 24 4
## 4 AYBUKE DOGAC 73 83
## 5 AYSE TUNA 17 33
## 6 BURCAK GONUL AYDIN 100 91
secim_2(bonus2, w = bonus1$vize)
## Error in secim_2(bonus2, w = bonus1$vize): Veri seti haricinde bir tür girildi veya girilen veri setinin ikiden fazla sütunu var