R DataFrame'de For-Loop

R Dataframe De For Loop



For döngüsü, bir dizi talimatı belirli sayıda tekrar etmemizi sağlayan bir kontrol yapısıdır. Özellikle aynı işlemi bazı öğeler üzerinde gerçekleştirmemiz gerektiğinde veya DataFrame'deki gibi bir veri yapısı üzerinde yineleme yapmamız gerektiğinde, R'de yineleme için yaygın olarak kullanılan bir yöntemdir. Satırlar ve sütunlar, her satırın tek bir gözlemi temsil ettiği ve her sütunun o gözlemin bir değişkenini veya yönünü gösterdiği R'deki DataFrame'leri oluşturur.

Bu özel makalede, farklı yaklaşımlarda DataFrame üzerinde yineleme yapmak için bir for döngüsü kullanıyoruz. Satırlarda ve sütunlarda for-loop yinelemesinin büyük DataFrame'ler için oldukça hesaplamalı olabileceğini unutmayın.







Örnek 1: R'de For-Loop Over DataFrame Satırlarını Kullanma

R'deki for döngüsü, bir DataFrame'in satırları üzerinde yineleme yapmak için kullanılabilir. For döngüsünün içinde, DataFrame'in her satırına erişmek için satır dizinini kullanabiliriz. Belirtilen DataFrame'in satırları üzerinde yineleme yapmak için for-loop'un gösterimi olan aşağıdaki R kodunu ele alalım.



veri = veri.çerçeve(c1 = c(1:5),

c2 = c(6:10),

          c3 = c(11:15))

for(i in 1:nrow(veri)) {

satır <- veri[i, ]

yazdır(satır)

}

Burada öncelikle “data” içerisinde data.frame() fonksiyonunu tanımlıyoruz. data.frame() işlevi burada üç sütun içerir. Her sütun, sırasıyla 1'den 5'e, 6'dan 10'a ve 11'den 15'e kadar bir sayı dizisiyle ayarlanır. Bundan sonra, toplam satır sayısını elde etmek için nrow() işlevini kullanarak DataFrame 'data' satırları üzerinde yinelenen for-loop işlevi dağıtılır. “i” döngü değişkeni, “data”daki tüm satır sayısına kadar olan değerleri alır.



Ardından, köşeli parantez “[ ]” gösterimini kullanarak DataFrame “data” nın i. satırını çıkarıyoruz. Ayıklanan satır, print() işlevi tarafından yazdırılacak bir 'satır' değişkeninde saklanır.





Bu nedenle döngü, DataFrame'deki tüm satırlar üzerinde yinelenir ve sütunun değerleri ile birlikte çıktıdaki satır numaralarını görüntüler.



Örnek 2: For-Loop Over DataFrame Sütunlarını Kullanma

Benzer şekilde, belirtilen veri çerçevesinin sütunları üzerinde döngü yapmak için R'deki for-loop'u kullanabiliriz. Sütunlar üzerinde döngü yapmak için önceki kodu kullanabiliriz ancak for döngüsünde ncol() işlevini kullanmalıyız. Tersine, for-loop kullanarak DataFrame'in sütunları üzerinde döngü yapmak için en basit yaklaşıma sahibiz. Bunun için aşağıdaki R kodunu göz önünde bulundurun:

df = data.frame(col1 = c(10, 20, 30, 40, 50),

col2 = c(11, 21, 31, 41, 51),

col3 = c(12, 22, 32, 42, 52))

for(col incolnames(df)) {

sütun <- df[[col]]

yazdır(sütun)

}

Burada ilk önce data.frame()'in sütunların eklenmesiyle kullanıldığı df değişkenini yaratıyoruz. 'df' DataFrame, sayısal değerler içeren üç sütun içerir. Daha sonra, colnames() işlevini kullanarak “data” DataFrame'in sütun adlarını yinelemek için bir for döngüsü kullanıyoruz. Her yinelemede, 'col' döngü değişkeni geçerli sütunun adını alır. Ayıklanan sütun daha sonra 'sütun' olan yeni bir değişkende saklanır.

Böylece, 'column' değişkeninin verileri aşağıdaki konsolda çıktı yazdırır:

Örnek 3: Tüm DataFrame Üzerinden For-Loop Kullanma

Önceki örneklerde, sırasıyla sütunları ve satırları for-döngüsünü kullanarak döngüledik. Şimdi, bir DataFrame'in hem satırlarını hem de sütunlarını aynı anda yinelemek için yuvalanmış for döngülerini kullanıyoruz. R'nin kodu, sütunlar ve satırlar üzerinde iç içe for döngüsünün kullanıldığı aşağıda verilmiştir:

çalışanlar <- data.frame(id=1:4,

isimler=c('kim', 'John', 'Ian', 'Mark'),

yer=c('Avustralya', 'Amerika', 'Kanada', 'Ürdün'),

maaş=c(2000, 1800, 1500, 1000))

for (satır 1:nrow(çalışanlar)) {

for (col in 1:ncol(çalışanlar)) {

print(paste('Satır dizini', satır, 'sütun adı', sütun, 'hücre değeri', çalışanlar[satır, sütun]))

}

}

Burada, sütunları ayarlamak için data.frame() öğesinin çağrıldığı “çalışanlar” değişkenini ilan ediyoruz. Her sütundaki değerler vektörler kullanılarak belirtilir. Ardından, 'çalışanlar' DataFrame'in satırı ve sütunu için, veriler üzerinde yineleme yapmak amacıyla iç içe geçmiş iki for döngüsü kullanırız. Dış döngü, '1:nrow(çalışanlar)' kullanarak belirtilen DataFrame'in satırları üzerinde yinelenir. DataFrame'in sütunları üzerinde tekrar tekrar yinelemek için iç döngüde her satır için '1:ncol(çalışanlar)' kullanılır.

Bundan sonra, satır dizinini, sütun dizinini ve hücre değerini tek bir dizgede birleştirmek için paste() işlevini dağıtan iç içe geçmiş döngülerin içinde bir print() işlevimiz var. Buradaki çalışan [row, col] ifadesi, satır ve sütunun sırasıyla mevcut satır ve sütun indeksleri olduğu geçerli hücredeki değeri alır.

Böylece konsoldaki çıktı, birleştirilmiş satır dizini, sütun dizini ve hücre değeri ile tek bir dizgede alınır.

Örnek 4: R'de For-Loop Alternatif Yöntemi

For döngüsü artık R dilinde güncelliğini yitirmiştir. Ancak, for döngüsü ile aynı şekilde çalışan ve for döngülerinden daha hızlı olan bazı alternatif yöntemler sunar. Yöntem, DataFrames üzerinde yineleme yapmak için arka planda for-loop çalıştıran 'aileyi uygula' işlevlerindendir. DataFrame üzerinde döngü yapmak için sapply() işlevinin kullanıldığı aşağıdaki R kodunu ele alalım.

dfX <- data.frame(var1=c(1:5),

var2=c(6:10),

var3=c(11:15),

var4=c(16:20))

dfX

sapply(dfX, toplam)

Burada öncelikle data.frame() fonksiyonunu her biri sayısal değerler içeren iki kolonlu çağırarak “dfX” DataFrame'i kuruyoruz. Daha sonra orijinal “dfX” DataFrame'i konsola yazdırıyoruz. Bir sonraki adımda, sağlanan DataFrame üzerinde yineleme yapmak ve her bir sütunun toplamını almak için sapply() işlevini kullanıyoruz. sapply() işlevi genel olarak “x” ve “FUN” argümanlarını alır. Bu durumda X, 'dfX' DataFrame'dir ve 'FUN', DataFrame'in sütunlarının her birine uygulanan sum() işlevidir.

sapply() fonksiyonu ile elde edilen yinelemenin sonucu aşağıdaki ekranda elde edilir. DataFrame'in toplam işleminin sonuçları her sütun için gösterilir. Ayrıca, R'deki for-loop işlemi için “apply family”nin diğer bazı fonksiyonlarını da kullanabiliriz:

Çözüm

Belirli bir işlemi gerçekleştirmek üzere DataFrame'in satırları veya sütunları üzerinde yineleme yapmak için for-döngüleri ile çalışıyoruz. For döngüsü, sütunlar ve satırlar üzerinde yineleme yapmak için ayrı ayrı kullanılır. Ayrıca, bunu veri çerçevesinin hem sütunları hem de satırları üzerinde aynı anda yineleme için kullanıyoruz. Çoğu zaman, istenen sonucu elde etmek için işlevleri uygulamak daha etkilidir. Apply fonksiyonunun örneği son örnekte for-loop işlemi üzerinden verilmiştir.