Konvensi mana untuk penamaan variabel dan fungsi yang Anda sukai dalam kode R?
Sejauh yang saya tahu, ada beberapa konvensi berbeda, yang semuanya hidup berdampingan dalam harmoni yang riuh rendah:
1. Penggunaan pemisah periode, misalnya
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Pro: Memiliki latar belakang sejarah dalam masyarakat R, lazim di seluruh inti R, dan direkomendasikan oleh Google R Style Guide .
Kekurangan: Penuh dengan konotasi berorientasi objek, dan membingungkan bagi pemula
2. Penggunaan garis bawah
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Kelebihan: Konvensi umum dalam banyak bahasa pemrograman; disukai oleh Panduan Gaya Hadley Wickham , dan digunakan dalam paket ggplot2 dan plyr.
Kekurangan: Tidak secara historis digunakan oleh programmer R; secara menjengkelkan dipetakan ke operator '<-' di Emacs-Speaks-Statistics (dapat diubah dengan 'ess-toggle-underscore').
3. Penggunaan huruf besar campuran (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Kelebihan: Tampaknya dapat diadopsi secara luas di beberapa komunitas bahasa.
Kekurangan: Memiliki preseden terkini, tetapi tidak digunakan secara historis (baik dalam basis R atau dokumentasinya).
Akhirnya, seolah-olah itu tidak cukup membingungkan, saya harus menunjukkan bahwa Panduan Gaya Google mengusulkan notasi titik untuk variabel, tetapi kapitalisasi campuran untuk fungsi.
Kurangnya gaya yang konsisten di seluruh paket R menjadi masalah di beberapa level. Dari sudut pandang pengembang, itu membuat pemeliharaan dan perluasan kode orang lain menjadi sulit (khususnya jika gayanya tidak sesuai dengan gaya Anda). Dari sudut pandang pengguna R, sintaks yang tidak konsisten mempertajam kurva pembelajaran R, dengan mengalikan cara sebuah konsep dapat diekspresikan (misalnya apakah fungsi tanggal casting asDate (), as.date (), atau as_date ()? Tidak, itu sebagai. Tanggal()).
ImfDataTransformed
atau versi natural extended IMFDataTransformed
tidak semudah membaca TOGGLEcamelCase yang saya sukai: IMFdataTransformed
...
alllowercase
nama variabel, dan banyak nama yang sangat singkat lurus dari-the-persamaan (x
,y
, dll).