Isi kandungan:
Video: KEM REJIMEN SEMPADAN – CADANGAN DIPERTIMBANG KEMENTERIAN PERTAHANAN [18 OGOS 2017] 2025
Semasa bekerja dengan fungsi di R, kadang-kadang, anda bekerja dengan beberapa objek yang tidak anda buat terlebih dahulu di ruang kerja. Anda menggunakan argumen x, mult, dan FUN seolah-olah ia objek, dan anda membuat peratus objek dalam fungsi yang anda tidak dapat mencari kembali di ruang kerja selepas menggunakan fungsi tersebut. Jadi, apa yang berlaku?
Buat kes ujian
Mari temukan melalui contoh kecil. Pertama, buat objek x dan fungsi ujian kecil () seperti ini:
Fungsi ujian () tidak banyak. Ia mengambil hujah x, mencetaknya ke konsol, membuangnya, dan cuba mencetaknya semula. Anda mungkin fikir fungsi ini akan gagal, kerana x akan hilang selepas baris rm (x). Tetapi tidak, jika anda mencuba fungsi ini, ia berfungsi dengan baik, seperti ditunjukkan dalam contoh berikut:
Cari laluan
Jika anda menggunakan fungsi, fungsi ini mula-mula mewujudkan persekitaran setempat
sementara.
Persekitaran setempat ini bersarang dalam persekitaran global, yang bermaksud bahawa, dari persekitaran setempat, anda juga boleh mengakses sebarang objek dari persekitaran global. Sebaik sahaja fungsi berakhir, persekitaran setempat dimusnahkan bersama-sama dengan semua objek di dalamnya.
Jika anda memanggil fungsi dari ruang kerja melalui skrip atau menggunakan baris arahan, persekitaran induk ini menjadi persekitaran global. Jika R melihat sebarang nama objek yang disebut dalam kod mana pun dalam fungsi tersebut, ia mula-mula mencari persekitaran setempat. Kerana ia mencari objek x di sana, ia menggunakan yang satu untuk pernyataan kucing pertama (). Dalam baris seterusnya, R menghilangkan objek itu x. Oleh itu, apabila R mencapai baris ketiga, ia tidak dapat mencari objek x dalam persekitaran setempat lagi. Tiada masalah. R menggerakkan persekitaran dan cek untuk melihat sama ada ia kelihatan seperti x dalam persekitaran global. Kerana ia dapat mencari x di sana, ia menggunakan satu dalam pernyataan kucing kedua (). Jika anda menggunakan rm () di dalam fungsi, rm () akan, secara lalai, padamkan hanya objek dalam fungsi itu.Dengan cara ini, anda boleh mengelakkan kehabisan memori apabila anda menulis fungsi yang perlu berfungsi pada dataset yang besar. Anda boleh dengan serta-merta mengeluarkan objek sementara yang besar dan bukannya menunggu fungsi untuk melakukannya pada akhir.
