Video: Fungsi DCS dan CTCSS pada HT 2024
Bila menggunakan fungsi sebagai argumen di R, kadang-kadang diperlukan untuk mencocokkan fungsi. Ini juga berarti bahwa jika Anda memiliki objek dengan nama yang sama dengan fungsi yang ingin Anda gunakan, keseluruhan konstruksi ini tidak akan bekerja. Misalkan Anda memiliki gagasan yang tidak begitu pintar untuk membuat vektor dengan keuntungan relatif dari putaran putaran poker seperti ini: >> round <- c (0. 48, -0 52, 1. 88) < Jika Anda mencoba memanggil addPercent () dengan argumen FUN pada vektor ini, Anda akan mendapatkan error berikut:
>> addPercent (round, FUN = round) Kesalahan dalam addPercent (round, FUN = round): tidak dapat menemukan fungsi "FUN"
Alih-alih melewati kode fungsi putaran, R melewati putaran vektor sebagai argumen FUN. Untuk menghindari masalah seperti ini, Anda bisa menggunakan fungsi khusus, cocok. fun (), di bodi addPercent (), seperti ini:
addPercent <- function (x, mult = 100, FUN, …) {FUN <- match. fun (FUN) persen <- fUN (x * mult, …) paste (percent, "%", sep = ")}Fungsi ini akan mencari fungsi yang sesuai dengan nama dan menyalin kode tersebut ke dalam FUN argumen sebagai pengganti rombongan vektor Sebagai bonus tambahan, cocokkan dengan menyenangkan () juga memungkinkan Anda menggunakan objek karakter sebagai argumen, jadi tentukan FUN = 'round' sekarang juga berfungsi.
Semua fungsi R asli menggunakan kecocokan, menyenangkan () untuk tujuan ini, dan disarankan agar Anda melakukan hal yang sama jika Anda menulis kode yang akan digunakan oleh orang lain. Tetapi fungsi yang lewat berfungsi dengan baik tanpa menggunakan kecocokan. menyenangkan () juga, asalkan Anda menggunakan nama yang masuk akal untuk objek lainnya di ruang kerja Anda.