X<- cbind(1:5, 21:25)

for(i in 1:nrow(X)){
  
  cat(i,".satirdaki degerlerin carpimi" ,X[i,1]*X[i,2], "olarak hesaplanmistir.\n", sep= " ")
}
## 1 .satirdaki degerlerin carpimi 21 olarak hesaplanmistir.
## 2 .satirdaki degerlerin carpimi 44 olarak hesaplanmistir.
## 3 .satirdaki degerlerin carpimi 69 olarak hesaplanmistir.
## 4 .satirdaki degerlerin carpimi 96 olarak hesaplanmistir.
## 5 .satirdaki degerlerin carpimi 125 olarak hesaplanmistir.
set.seed(41)
sayilar <- sample(0:10, 30, replace = TRUE)

for (i in 1:length(sayilar)) {
  if (sayilar[i] == 0) {
    next
  }
  cat("1/", sayilar[i], "\n", sep = "")
}
## 1/7
## 1/2
## 1/4
## 1/7
## 1/9
## 1/5
## 1/5
## 1/1
## 1/1
## 1/10
## 1/5
## 1/1
## 1/4
## 1/5
## 1/3
## 1/3
## 1/1
## 1/3
## 1/5
## 1/1
## 1/1
## 1/3
## 1/3
## 1/4
## 1/2
## 1/5
## 1/10
#Örnek
ornek <- sample( 2:30,30, replace = TRUE)
for (i in 1:length(ornek)) {
  if (ornek[i] == 0) {
    next
  }
  cat("1/", ornek[i], "\n", sep = "")
}
## 1/17
## 1/28
## 1/26
## 1/17
## 1/29
## 1/18
## 1/11
## 1/9
## 1/14
## 1/19
## 1/14
## 1/8
## 1/22
## 1/29
## 1/21
## 1/29
## 1/22
## 1/30
## 1/28
## 1/3
## 1/22
## 1/24
## 1/19
## 1/14
## 1/9
## 1/22
## 1/20
## 1/23
## 1/2
## 1/5
set.seed(41)
sayilar <- sample(0:10,30,replace=TRUE)

for(i in sayilar){
  if(i==0){
next
  }
  cat("1/",i,sep="","\n")}
## 1/7
## 1/2
## 1/4
## 1/7
## 1/9
## 1/5
## 1/5
## 1/1
## 1/1
## 1/10
## 1/5
## 1/1
## 1/4
## 1/5
## 1/3
## 1/3
## 1/1
## 1/3
## 1/5
## 1/1
## 1/1
## 1/3
## 1/3
## 1/4
## 1/2
## 1/5
## 1/10
for(i in 1:12){
  if(i==3){
break
  }
  print (i)}
## [1] 1
## [1] 2
set.seed(41)
sayilar1 <- sample(-5 :5,10,replace=TRUE)
sayilar1
##  [1]  2 -3 -1  2  4  0  0 -4 -4  5
for(i in sayilar1){
  print(i)
  if(i<0){
break
  }
}
## [1] 2
## [1] -3
set.seed(853)
y<-matrix(rnorm(1000000),nrow=1000)
z<-0*y

#loop:
time2 <- system.time(
  for(i in 1:1000){
  for(j in 1:1000){
z[i,j]<-y[i,j]^2
  }
})

time2
##    user  system elapsed 
##    0.17    0.00    0.18
time3 <- system.time(z<-y^2)
time3
##    user  system elapsed 
##    0.00    0.00    0.02
x <-60
if(x>=65){
print("Basarılı")
}else {
  print("Basarisiz")
}
## [1] "Basarisiz"
gecme_notu <- 50 
if(gecme_notu>= 50){
  print("gecti")
}else {
  print("kaldi")
}
## [1] "gecti"

#sıra sizde

a <- 5
if ( a==0) {
  print( "1/a tanimsizdir.")
  }else { print(paste(a,"'in carpmaya gore tersi 1/",a,sep=""))
  }
## [1] "5'in carpmaya gore tersi 1/5"
#ya da cat ile şu şekilde olabilir mi?
a <- 5
if ( a==0) {
  print( "1/a tanimsizdir.")
  }else { cat(a,"'in carpmaya gore tersi 1/",a,sep="")
  }
## 5'in carpmaya gore tersi 1/5

#if & all

x <- c(1,2,-3,4)
if(all(x>0)){
  
  print("tum sayilar 0'dan buyuktur")
  
} else{
  
  print("tum sayilar 0'dan buyuk degildir")
}
## [1] "tum sayilar 0'dan buyuk degildir"
#bir başka örnek şöyle olabilir

tek <- c(12,37,43,51,64,79)
if (all(tek %% 2 != 0)) {
  print("Tüm sayılar tektir")
} else {
  print("Tüm sayılar tek değildir")
}
## [1] "Tüm sayılar tek değildir"

#if& any

x <- c(12,37,43,51,64,79)

if (any(x %% 2 == 0)) {
  print(" x en az bir çift sayı içerir")
} else {
  print("x çift sayı içermez")
}
## [1] " x en az bir çift sayı içerir"
x <- c(11,37,43,51,63,79)

if (any(x %% 2 == 0)) {
  print(" x en az bir çift sayı içerir")
} else {
  print("x çift sayı içermez")
}
## [1] "x çift sayı içermez"

#Çoklu işlem

fiyat <- 1500

if (fiyat > 1000) {
  kategori <- "Lüks"
  öneri <- "Bütçeni gözden geçir!"
  alternatif <- "Daha ucuz seçeneklere bak"
} else if (fiyat > 500) {
  kategori <- "Pahalı"
  öneri <- "Satın almadan önce iyi düşün!"
  alternatif <- "Kampanya bekle"
} else if (fiyat > 100) {
  kategori <- "Orta"
  öneri <- "Gayet uygun, satın almayı düşünebilirsin."
  alternatif <-"Benzer ürünlere bak"
} else {
  kategori <- "Ucuz"
  öneri <- "Harika bir fırsat olabilir!"
  alternatif <-"Hemen değerlendir"
}

kategori
## [1] "Lüks"
öneri
## [1] "Bütçeni gözden geçir!"
alternatif
## [1] "Daha ucuz seçeneklere bak"

#ifelse

x <- 20
ifelse(x>= 65, "Başarılı" ,"Başarısız")
## [1] "Başarısız"
sayı <- -9
ifelse(sayı>0,"Pozitif", "Negatif")
## [1] "Negatif"

#SIRA SİZDE

#1.
set.seed(41)
sayilar <- sample(50:90,27)
sayilar
##  [1] 89 84 54 81 57 78 55 71 80 62 87 67 70 83 82 61 66 53 50 69 79 64 85 51 73
## [26] 74 88
ifelse(sayilar %% 2 == 0, "Cift", "Tek")
##  [1] "Tek"  "Cift" "Cift" "Tek"  "Tek"  "Cift" "Tek"  "Tek"  "Cift" "Cift"
## [11] "Tek"  "Tek"  "Cift" "Tek"  "Cift" "Tek"  "Cift" "Tek"  "Cift" "Tek" 
## [21] "Tek"  "Cift" "Tek"  "Tek"  "Tek"  "Cift" "Cift"
#2

set.seed(987)
sayilar <- sample(-10:10,27,replace=TRUE)
sayilar
##  [1]   4   3   4   2   1   7 -10   5   6  -8   7  -3   9   7  -9  10   4  -1  -8
## [20]   8  -3   0   4   5   8   1   3
for (sayi in sayilar) {
  if (sayi < 0) {
    print(paste(sayi, "Negatif"))
  } else if (sayi > 0) {
    print(paste(sayi, "Pozitif"))
  } else {
    print(paste(sayi, "Sıfır"))
  }
}
## [1] "4 Pozitif"
## [1] "3 Pozitif"
## [1] "4 Pozitif"
## [1] "2 Pozitif"
## [1] "1 Pozitif"
## [1] "7 Pozitif"
## [1] "-10 Negatif"
## [1] "5 Pozitif"
## [1] "6 Pozitif"
## [1] "-8 Negatif"
## [1] "7 Pozitif"
## [1] "-3 Negatif"
## [1] "9 Pozitif"
## [1] "7 Pozitif"
## [1] "-9 Negatif"
## [1] "10 Pozitif"
## [1] "4 Pozitif"
## [1] "-1 Negatif"
## [1] "-8 Negatif"
## [1] "8 Pozitif"
## [1] "-3 Negatif"
## [1] "0 Sıfır"
## [1] "4 Pozitif"
## [1] "5 Pozitif"
## [1] "8 Pozitif"
## [1] "1 Pozitif"
## [1] "3 Pozitif"

#for döngüsü

#sıra sizde; X matrisini kullanarak aşağıdaki çıktıyı elde etmek için gerekli kodu yazınız.

X <- cbind(1:5, 21:25)
X
##      [,1] [,2]
## [1,]    1   21
## [2,]    2   22
## [3,]    3   23
## [4,]    4   24
## [5,]    5   25
for (i in 1:nrow(X)) {
  carpim <- 1 
  for (j in 1:ncol(X)) {
    carpim <- carpim * X[i, j] 
  }
  cat(i, " satirdaki degerlerin carpimi ", carpim, " olarak hesaplanmistir.\n", sep = "")
}
## 1 satirdaki degerlerin carpimi 21 olarak hesaplanmistir.
## 2 satirdaki degerlerin carpimi 44 olarak hesaplanmistir.
## 3 satirdaki degerlerin carpimi 69 olarak hesaplanmistir.
## 4 satirdaki degerlerin carpimi 96 olarak hesaplanmistir.
## 5 satirdaki degerlerin carpimi 125 olarak hesaplanmistir.

iç içe for döngüsü

x <- matrix(1:6, 2, 3)

for(i in seq_len(nrow(x))) { #satır boyunca
        for(j in seq_len(ncol(x))) { #sütunlar boyunca 
                print(x[i, j])
        }   
}
## [1] 1
## [1] 3
## [1] 5
## [1] 2
## [1] 4
## [1] 6
#iki düzeyden sonra iç içe for karışıyor
#örnek 
m2 <- matrix(0,nrow=5,ncol=5)
m2
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## [5,]    0    0    0    0    0
for(i in 1:nrow(m2)) { 
        for(j in 1: ncol(m2)) { 
          m2[i,j] <- i*j

        }   
}
 m2
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    2    4    6    8   10
## [3,]    3    6    9   12   15
## [4,]    4    8   12   16   20
## [5,]    5   10   15   20   25

#Sıra Sizde

m2 <- matrix(0,nrow=5,ncol=5)
m2
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    0    0    0    0    0
## [2,]    0    0    0    0    0
## [3,]    0    0    0    0    0
## [4,]    0    0    0    0    0
## [5,]    0    0    0    0    0
for( i in 1:nrow(m2)) {
  for (k in 1: ncol(m2)){
    m2[ i,k] <- i*k
  }
}

m2
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    2    4    6    8   10
## [3,]    3    6    9   12   15
## [4,]    4    8   12   16   20
## [5,]    5   10   15   20   25
#chatgpt outer  ile de aynı şeyi yapılabileceğini  önerdi :) 
m2 <- outer(1:5, 1:5, FUN = "*")
m2
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    2    4    6    8   10
## [3,]    3    6    9   12   15
## [4,]    4    8   12   16   20
## [5,]    5   10   15   20   25
?outer
## starting httpd help server ... done

While döngüsü

count <- 0
while(count < 10) { #koşulu döngüyü içine yazdırma
        print(count)
        count <- count + 1
}
## [1] 0
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
i=1 
while (i<-1){
  i= i+1
  
  print(i)
}
z <- 5
set.seed(1)

while(z >= 3 && z <= 10) {
        coin <- rbinom(1, 1, 0.5)
        
        if(coin == 1) {  ## rastgele çalışır zar gibi
                z <- z + 1
        } else {
                z <- z - 1
        } 
}
print(z)

#repeat

x0 <- 1
tol <- 1e-8

repeat {
        x1 <- computeEstimate()
        
        if(abs(x1 - x0) < tol) {  ## Yeterince yakın mı?
                break
        } else {
                x0 <- x1
        } 
}

#ÖDEVLER

#1
 n <- 8
matris <- matrix( nrow = 8, ncol = 8,0)

for (i in 1:n) {
  for (j in 1:n) {
    matris[i, j] <- i * j
matris [i,j] <- i*j
}}
#2 
n <- 10



fibonacci <- numeric(n) # Fibonacci dizisini saklamak için vektör
fibonacci[1] <- 1       # İlk eleman
if (n > 1) {
  fibonacci[2] <- 1     # İkinci eleman
}

i <- 3
while (i <= n) {
  fibonacci[i] <- fibonacci[i - 1] + fibonacci[i - 2]
  i <- i + 1
}

cat("Fibonacci dizisi:", fibonacci, "\n")
## Fibonacci dizisi: 1 1 2 3 5 8 13 21 34 55
#3

set.seed(1786)
ornek<-exp(matrix(rnorm(2000),nrow=100))
index1.temp<-sample(1:100,10)
index2.temp<-sample(1:20,10)
for(i in 1:10){
  ornek[index1.temp[i],index2.temp[i]]<--1
}
 head(ornek,6)
##           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]     [,7]
## [1,] 0.5549525 0.3247338 0.5236032 0.3821027 0.4187483 0.1588847 5.226161
## [2,] 0.5671734 1.2431592 0.8812069 2.6695443 0.6984453 1.0838792 1.079946
## [3,] 4.8068457 0.3449856 0.6079096 0.9194116 1.5361330 1.9082522 0.671977
## [4,] 1.3509234 2.3569582 0.1931423 4.0707377 0.3527276 2.3498825 1.198514
## [5,] 0.9012032 0.2310683 0.2317487 1.3809955 0.9168741 0.6237213 1.609403
## [6,] 1.2331483 1.1066056 0.3546027 0.3705946 0.9002303 0.2528151 3.337512
##           [,8]      [,9]     [,10]     [,11]     [,12]     [,13]     [,14]
## [1,] 2.6280057 1.2251526 0.4760966 5.2379018 1.4782655 1.3761338 1.0202608
## [2,] 2.2087385 0.5195551 0.3757409 0.9004808 0.7409205 2.0543842 0.3668661
## [3,] 1.5310016 0.6735007 2.2069776 0.5060078 0.7171477 1.2378655 0.3651527
## [4,] 2.5592899 1.8205257 1.2624052 0.1524106 0.3828322 1.2406799 0.7954326
## [5,] 1.1005990 1.0619758 2.1047783 2.7816902 1.4010878 0.6140937 0.5136842
## [6,] 0.9799103 2.7520425 2.5407624 1.3889136 0.4346808 1.0637950 0.1859157
##          [,15]     [,16]      [,17]     [,18]    [,19]     [,20]
## [1,] 0.1437680 4.1807643  1.7389423 3.0760640 1.550557 4.4838291
## [2,] 3.8674407 1.9349214  0.6333922 0.4862532 5.275571 0.1161029
## [3,] 1.4724240 0.5971116 11.5869157 0.7580736 4.755297 1.0583051
## [4,] 0.1243085 0.8376231  1.3723291 2.0884571 2.506128 1.2094517
## [5,] 6.2971803 0.8422164  1.5335222 0.3079718 2.729447 1.7164885
## [6,] 3.8052219 2.1611055  0.3280288 2.7773368 1.726558 1.3193446
 # Döngüde negatif sayı kontrolü
negatif_sayi_toplami <- 0

for (i in 1:nrow(ornek)) {
  negatif_sayilar <- sum(ornek[i, ] < 0)  # i. satırdaki negatif sayıların toplamı
  
  # Negatif sayı yoksa ortalama yazdır
  if (negatif_sayilar == 0) {
    satir_ortalamasi <- mean(ornek[i, ])
    cat(i, ". satırda negatif sayı yoktur. Ortalama:", round(satir_ortalamasi, 2), "\n")
  } else {
    # Negatif sayı varsa uyarı yazdır
    cat(i, ". satırda negatif sayı bulunmaktadır.\n")
    negatif_sayi_toplami <- negatif_sayi_toplami + negatif_sayilar
    
    # Negatif sayı toplamı 3'ü geçerse döngüyü durdur
    if (negatif_sayi_toplami > 3) {
      cat("Çok sayıda negatif sayı bulundu! Döngüyü durdur.\n")
      break
    }
  }
}
## 1 . satırda negatif sayı yoktur. Ortalama: 1.81 
## 2 . satırda negatif sayı yoktur. Ortalama: 1.39 
## 3 . satırda negatif sayı yoktur. Ortalama: 1.91 
## 4 . satırda negatif sayı yoktur. Ortalama: 1.41 
## 5 . satırda negatif sayı yoktur. Ortalama: 1.44 
## 6 . satırda negatif sayı yoktur. Ortalama: 1.45 
## 7 . satırda negatif sayı yoktur. Ortalama: 1.28 
## 8 . satırda negatif sayı yoktur. Ortalama: 1.09 
## 9 . satırda negatif sayı yoktur. Ortalama: 1.42 
## 10 . satırda negatif sayı bulunmaktadır.
## 11 . satırda negatif sayı yoktur. Ortalama: 1.64 
## 12 . satırda negatif sayı bulunmaktadır.
## 13 . satırda negatif sayı yoktur. Ortalama: 1.47 
## 14 . satırda negatif sayı yoktur. Ortalama: 1.69 
## 15 . satırda negatif sayı yoktur. Ortalama: 1.52 
## 16 . satırda negatif sayı yoktur. Ortalama: 2 
## 17 . satırda negatif sayı yoktur. Ortalama: 1.48 
## 18 . satırda negatif sayı yoktur. Ortalama: 1.44 
## 19 . satırda negatif sayı yoktur. Ortalama: 1.54 
## 20 . satırda negatif sayı yoktur. Ortalama: 2.18 
## 21 . satırda negatif sayı yoktur. Ortalama: 1.49 
## 22 . satırda negatif sayı yoktur. Ortalama: 2.11 
## 23 . satırda negatif sayı yoktur. Ortalama: 2.54 
## 24 . satırda negatif sayı bulunmaktadır.
## 25 . satırda negatif sayı bulunmaktadır.
## Çok sayıda negatif sayı bulundu! Döngüyü durdur.
#4
#içi dolu kare
n <- 5


for (i in 1:n) {
  cat(rep("*", n), "\n")  
}
## * * * * * 
## * * * * * 
## * * * * * 
## * * * * * 
## * * * * *
#içi boş kare

n <- 5

for (i in 1:n) {
  if (i == 1 || i == n) {
    # İlk ve son satırlar tamamen yıldız
    cat(rep("*", n), "\n")
  } else {
    # Diğer satırlar sadece baştaki ve sondaki yıldız
    cat("*", rep(" ", n - 2), "*", "\n", sep = "")
  }
}
## * * * * * 
## *   *
## *   *
## *   *
## * * * * *
#üçgen
n <- 5  

for (i in 1:n) {
  cat(rep("*", i), "\n")
}
## * 
## * * 
## * * * 
## * * * * 
## * * * * *
#eşkenar üçgen 
n <- 5  

for (i in 1:n) {
 
  cat(rep(" ", n - i), sep = "")
  cat(rep("*", 2 * i - 1), sep = "")
 
  cat("\n")
}
##     *
##    ***
##   *****
##  *******
## *********

FONKSİYONLAR

# lapply() LİSTEYE AYNI FONKSİYONU KULLANMA

f <- function() {
        cat("Merhaba!\n")
}
f()
## Merhaba!
f <- function(num) {
        for(i in seq_len(num)) {
                cat("Merhaba!\n")
        }
}
f(3)
## Merhaba!
## Merhaba!
## Merhaba!
f <- function(tekrar) {
        Merhaba <- "Merhaba!"
        for(i in seq_len(tekrar)) {
                cat(Merhaba, "\n")
        }
        chars <- nchar(Merhaba) * tekrar #karakter sayısı, kaç tane karakter yazıldığını gösterme
        chars
        sonuc <- list(c1=Merhaba, c2= chars)
        sonuc
         # return(list(c1=Merhaba, c2= chars)) sonuç ile aynı şey 
}
fonksiyonciktisi <- f(3)
## Merhaba! 
## Merhaba! 
## Merhaba!
fonksiyonciktisi
## $c1
## [1] "Merhaba!"
## 
## $c2
## [1] 24
library(CTT)

?itemAnalysis

x<-data.frame(matrix(c(0,0,0,0,0,
                        0,0,0,0,0,
                        0,0,0,0,1,
                        0,0,0,1,1,
                        0,0,1,1,1,
                        0,1,1,1,1,
                        1,1,1,1,1,
                        1,0,1,1,1,
                        0,0,0,1,1,
                        0,1,1,1,1),nrow=10,ncol=5,byrow=TRUE,
                        dimnames=list(c(paste("P",c(1:10),sep="")),c(paste("I",c(1:5),sep="")))))
itemAnalysis(x)
## 
##  Number of Items 
##  5 
## 
##  Number of Examinees 
##  10 
## 
##  Coefficient Alpha 
##  0.816
# To see an item report with flags.
iA <- itemAnalysis(x, hardFlag=.25, pBisFlag=.15)
iA$itemReport
##   itemName itemMean      pBis       bis alphaIfDeleted hard lowPBis
## 1       I1      0.2 0.4036037 0.5766551      0.8325792    X        
## 2       I2      0.3 0.5299577 0.6984823      0.8027211             
## 3       I3      0.5 0.7905694 0.9908318      0.7166667             
## 4       I4      0.7 0.7237469 0.9538957      0.7424242             
## 5       I5      0.8 0.5995438 0.8566076      0.7827529
# To see more item statisitics
str(itemAnalysis(x))
## List of 6
##  $ nItem     : int 5
##  $ nPerson   : int 10
##  $ alpha     : num 0.816
##  $ scaleMean : num 2.5
##  $ scaleSD   : num 1.78
##  $ itemReport:'data.frame':  5 obs. of  5 variables:
##   ..$ itemName      : chr [1:5] "I1" "I2" "I3" "I4" ...
##   ..$ itemMean      : num [1:5] 0.2 0.3 0.5 0.7 0.8
##   ..$ pBis          : num [1:5] 0.404 0.53 0.791 0.724 0.6
##   ..$ bis           : num [1:5] 0.577 0.698 0.991 0.954 0.857
##   ..$ alphaIfDeleted: num [1:5] 0.833 0.803 0.717 0.742 0.783
##  - attr(*, "class")= chr "itemAnalysis"
# f <- function(tekrar = 1) {
#         Merhaba <- "Merhaba!\n"
#         for(i in seq_len(tekrar)) {
#                 cat(Merhaba)
#         }
#         chars <- nchar(Merhaba) * tekrar
#         chars
# }
# f()    ## 'tekrar' için varsayılan değeri kullan
# f(2)   ## Kullanıcı tarafından belirtilen değeri kullan
#Fonksiyon yazarken default değer atamaya çalış

Argüman Eşleştirme

str(rnorm)
function (n, mean = 0, sd = 1)  
mydata <- rnorm(100, 2, 1)  ## Bazı veriler oluşturun
mydata

lm(data = mydata, y ~ x, model = FALSE, 1:100)
lm(y ~ x, mydata, 1:100, model = FALSE)

#FONKSİYON OLUŞTURMA * Önce bir taslak oluşturun. * Taslağınızı içine komut satırlarınıza yapıştırın * Fonksiyonun argümanları belirleyin * Argüman isimlerinizi kullanacağınız değişkenlerle değiştirin

fonksiyon_adi <- function(sayi=1,satir=c(5),sutun=c(10)){

    df <- data.frame(matrix(0,nrow=satir, ncol=sutun))
     writexl::write_xlsx(df,"veri_1.xlsx")
}
fonksiyon_adi(sayi=1,satir=c(5),sutun=c(10))

KENDİ FONKSİYONUNU OLUŞTURMA

fonksiyon_adi <-function(sayi=3,satir=c(5,5,5),sutun=c(10,10,10)){
   
  df_list <- list() ## her bir veri setinin atanacağı yeni nesne
    
    for( i in 1:sayi){
    df_list[[i]] <- data.frame(matrix(0,nrow=satir[i], ncol=sutun[i])) # veri seti istenilen ozelliklerde olusturulur
     for(j in 1:sutun[i]){
     df_list[[i]][,j] <- round(rnorm(satir[i],0,1),2) #  her bir veri setinin her bir sütunu standart normal dağılıma uygun uretilir
           writexl::write_xlsx(df_list[[i]],paste("veri",i,".xlsx", sep=""))

     }}
  
}

fonksiyon_adi(sayi=5,satir=c(5,4,3,5,5),
              sutun=c(10,5,4,3,4))

#Sıra Sizde

library(tuev)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(haven)

# Eksik değerleri belirli bir sütundan temizleyen fonksiyon
eksik_deger <- function(veri, sutun) {
  # Sütun adı kontrolü
  if (!(sutun %in% colnames(veri))) {
    stop("Belirttiğiniz sütun veri setinde bulunmuyor.")
  }
  
  # Eksik değerleri filtrele
  Filtred_eksikdeger <- veri %>%
    filter(!is.na(!!sym(sutun)))  # Belirtilen sütunda NA olmayanları seç
  
  return(Filtred_eksikdeger)
}

# Veri setini yükle
data(PISA_STU_2018)

# Örnek veri setini seç ve işleme hazırla
MINIPISA <- PISA_STU_2018 %>%
  select(ST008Q01TA:ST011Q16NA) %>%  # Belirli sütunları seç
  select(-ST008Q04TA) %>%  # ST008Q04TA sütununu hariç tut
  mutate(across(everything(), zap_labels))  # Sütunların etiketlerini kaldır

# Belirli sütundaki eksik değerleri temizle
MINIPISA_ <- eksik_deger(MINIPISA, "ST008Q01TA")

# Temizlenmiş veri setini yazdır
print(MINIPISA_)
## # A tibble: 6,075 × 16
##    ST008Q01TA ST008Q02TA ST008Q03TA ST011Q01TA ST011Q02TA ST011Q03TA ST011Q04TA
##         <dbl>      <dbl>      <dbl>      <dbl>      <dbl>      <dbl>      <dbl>
##  1          2          2          2          1          1          1          2
##  2          2          2          2          1          2          1          2
##  3          2          2          2          2          2          2          2
##  4          2          2          2          1          1          1          1
##  5          2          1          2          1          1          1          1
##  6          2          2          1          1          1          1          1
##  7          2          2          2          1          1          1          1
##  8          2          2          2          1          2          1          1
##  9          2          2          1          1          1          1          2
## 10          2          2          2          1          1          1          1
## # ℹ 6,065 more rows
## # ℹ 9 more variables: ST011Q05TA <dbl>, ST011Q06TA <dbl>, ST011Q07TA <dbl>,
## #   ST011Q08TA <dbl>, ST011Q09TA <dbl>, ST011Q10TA <dbl>, ST011Q11TA <dbl>,
## #   ST011Q12TA <dbl>, ST011Q16NA <dbl>