For-Loop dalam R DataFrame

For Loop Dalam R Dataframe



Gelung untuk ialah struktur kawalan yang membolehkan kami mengulangi set arahan dalam beberapa kali tertentu. Ia adalah kaedah yang biasa digunakan untuk lelaran dalam R, terutamanya apabila kita perlu melakukan operasi yang sama pada beberapa elemen atau lelaran pada struktur data seperti dalam DataFrame. Baris dan lajur membentuk DataFrames dalam R di mana setiap baris mewakili satu pemerhatian dan setiap lajur menandakan pembolehubah atau aspek pemerhatian itu.

Dengan artikel khusus ini, kami menggunakan gelung untuk untuk mengulang ke atas DataFrame dalam pendekatan yang berbeza. Harap maklum bahawa lelaran untuk gelung merentas baris dan lajur boleh menjadi pengiraan yang tinggi untuk DataFrames yang besar.







Contoh 1: Menggunakan For-Loop Over DataFrame Rows dalam R

Gelung untuk dalam R boleh digunakan untuk mengulangi baris DataFrame. Di dalam gelung untuk, kita boleh menggunakan indeks baris untuk mengakses setiap baris DataFrame. Mari kita pertimbangkan kod R berikut yang merupakan demonstrasi gelung untuk untuk berulang ke atas baris DataFrame yang ditentukan.



data = data.frame(c1 = c(1:5),

c2 = c(6:10),

c3 = c(11:15))

untuk(i dalam 1:nrow(data)) {

baris <- data[i, ]

cetak(baris)

}

Di sini, kita mula-mula mentakrifkan fungsi data.frame() di dalam 'data'. Fungsi data.frame() di sini mengandungi tiga lajur. Setiap lajur ditetapkan dengan urutan nombor dari 1 hingga 5, 6 hingga 10, dan 11 hingga 15, masing-masing. Selepas itu, fungsi for-gelung digunakan yang berulang pada baris 'data' DataFrame menggunakan fungsi nrow() untuk mendapatkan jumlah bilangan baris. Pembolehubah gelung, 'i', mengambil nilai kepada keseluruhan bilangan baris dalam 'data'.



Kemudian, kami mengekstrak baris ke-i 'data' DataFrame menggunakan notasi kurungan segi empat sama '[ ]'. Baris yang diekstrak disimpan dalam pembolehubah 'baris' yang akan dicetak oleh fungsi print().





Oleh itu, gelung berulang ke atas semua baris dalam DataFrame dan memaparkan nombor baris dalam output bersama-sama dengan nilai lajur.



Contoh 2: Menggunakan For-Loop Over DataFrame Lajur

Begitu juga, kita boleh menggunakan gelung untuk dalam R untuk menggelung ke atas lajur rangka data yang ditentukan. Kita boleh menggunakan kod sebelumnya untuk menggelung ke atas lajur tetapi kita mesti menggunakan fungsi ncol() dalam gelung untuk. Sebaliknya, kami mempunyai pendekatan paling mudah untuk menggelung ke atas lajur DataFrame menggunakan gelung untuk. Pertimbangkan kod R berikut untuk ini:

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 in colnames(df)) {

lajur <- df[[col]]

cetak(lajur)

}

Di sini, kita mula-mula mencipta pembolehubah df di mana data.frame() digunakan dengan sisipan lajur. DataFrame 'df' mengandungi tiga lajur yang mengandungi nilai angka. Seterusnya, kami menggunakan gelung untuk untuk mengulangi nama lajur DataFrame 'data' menggunakan fungsi colnames(). Dalam setiap lelaran, pembolehubah gelung 'col' mengambil nama lajur semasa. Lajur yang diekstrak kemudiannya disimpan dalam pembolehubah baharu iaitu 'lajur'.

Oleh itu, data pembolehubah 'lajur' mencetak output pada konsol berikut:

Contoh 3: Menggunakan For-Loop Pada Keseluruhan DataFrame

Dalam contoh terdahulu, kami melingkari lajur dan baris menggunakan gelung untuk, masing-masing. Sekarang, kami menggunakan gelung bersarang untuk mengulangi kedua-dua baris dan lajur DataFrame, secara serentak. Kod R disediakan dalam yang berikut di mana gelung untuk bersarang digunakan di atas lajur dan baris:

pekerja <- data.frame(id=1:4,

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

location=c('Australia', 'America', 'Canada', 'Jordan'),

gaji=c(2000, 1800, 1500, 1000))

untuk (baris dalam 1:nrow(pekerja)) {

untuk (col dalam 1:ncol(pekerja)) {

print(tampal('Indeks baris', baris, 'nama lajur', kol, 'nilai sel', pekerja[baris, kol]))

}

}

Di sini, kami mengisytiharkan pembolehubah 'pekerja' di mana data.frame() dipanggil untuk menetapkan lajur. Nilai dalam setiap lajur ditentukan menggunakan vektor. Kemudian, untuk baris dan lajur DataFrame 'pekerja', kami menggunakan dua gelung bersarang untuk mengulangi data. Gelung luar berulang ke atas baris DataFrame yang ditentukan menggunakan '1:nrow(pekerja)'. Untuk setiap baris, '1:ncol(pekerja)' digunakan dalam gelung dalam untuk berulang kali melelaran pada lajur DataFrame.

Selepas itu, kami mempunyai fungsi print() di dalam gelung bersarang yang menggunakan fungsi tampal() untuk menggabungkan indeks baris, indeks lajur dan nilai sel ke dalam satu rentetan. Ungkapan pekerja [baris, kol] di sini mendapat nilai dalam sel semasa di mana baris dan lajur ialah indeks baris dan lajur sedia ada, masing-masing.

Oleh itu, output pada konsol diperoleh dengan indeks baris, indeks lajur dan nilai sel yang digabungkan ke dalam rentetan tunggal.

Contoh 4: Kaedah Alternatif Untuk Gelung dalam R

Gelung for kini sudah lapuk dalam bahasa R. Walau bagaimanapun, ia menyediakan beberapa kaedah alternatif yang berfungsi sama seperti gelung untuk dan lebih pantas daripada gelung untuk. Kaedahnya adalah daripada fungsi 'guna pakai keluarga' yang menjalankan gelung untuk di latar belakang untuk beralih ke DataFrames. Mari kita pertimbangkan kod R berikut di mana fungsi sapply() digunakan untuk menggelung ke atas DataFrame.

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

var2=c(6:10),

var3=c(11:15),

var4=c(16:20))

dfX

sapply(dfX, jumlah)

Di sini, kami mula-mula mewujudkan DataFrame 'dfX' dengan memanggil fungsi data.frame() dengan dua lajur, setiap satu mengandungi nilai berangka. Kami kemudian mencetak DataFrame 'dfX' asal ke konsol. Dalam langkah seterusnya, kami menggunakan fungsi sapply() untuk mengulangi DataFrame yang disediakan dan mendapatkan jumlah setiap lajur. Fungsi sapply() mengambil argumen 'x' dan 'FUN' secara umum. Dalam kes ini, X ialah DataFrame 'dfX', dan 'FUN' ialah fungsi sum() yang digunakan pada setiap lajur DataFrame.

Hasil daripada lelaran yang dicapai melalui fungsi sapply() dicapai dalam skrin berikut. Keputusan operasi jumlah DataFrame ditunjukkan untuk setiap lajur. Selain itu, kita juga boleh menggunakan beberapa fungsi lain 'keluarga terpakai' untuk operasi gelung dalam R:

Kesimpulan

Kami bekerja dengan gelung untuk untuk mengulangi baris atau lajur DataFrame untuk melaksanakan operasi tertentu. Gelung untuk digunakan secara individu untuk mengulangi lajur dan baris. Tambahan pula, kami menggunakan ini untuk lelaran pada kedua-dua lajur dan baris bingkai data pada masa yang sama. Selalunya, menggunakan fungsi untuk mendapatkan hasil yang diinginkan adalah lebih berkesan. Contoh fungsi guna diberikan dalam contoh terakhir mengenai operasi gelung untuk.