Meningkatkan nama variabel dalam dataset


11

Nama variabel yang baik adalah:

a) pendek / mudah diketik,

b) mudah diingat,

c) dimengerti / komunikatif.

Apakah saya lupa sesuatu? Konsistensi adalah sesuatu yang harus dicari. Menurut saya, konvensi penamaan yang konsisten berkontribusi pada kualitas di atas. Konsistensi berkontribusi pada (b) kemudahan mengingat dan (c) dapat dimengerti, meskipun faktor-faktor lain seringkali lebih penting. Ada tradeoff yang jelas antara (a) panjang nama / kemudahan mengetik (mis. Semua huruf kecil) dan (c) dapat dimengerti.

Saya berinvestasi sedikit pemikiran dalam masalah ini karena ribuan orang menggunakan data dan saya berharap banyak yang akan menggunakan kode saya untuk menyiapkan data dan memfasilitasi beberapa jenis analisis. Data, dari Studi Longitudinal Kesehatan Remaja, dipecah menjadi beberapa set data. Langkah pertama saya adalah mengambil 227 variabel dalam dataset yang paling umum digunakan, mengode ulangnya, memberi mereka nama yang lebih bermakna. Nama variabel asli adalah hal-hal seperti "bantuan", "s1", "s2", yang saya beri nama "aid2", "age", dan "male.is". Ada ribuan variabel lain dalam dataset lain yang dapat digabungkan tergantung pada apa tujuan peneliti.

Selama saya mengubah nama variabel, saya ingin membuatnya berguna. Inilah beberapa masalah yang saya pertimbangkan. Sejauh ini, saya hanya menggunakan huruf kecil dan menghindari menggunakan tanda hubung atau garis bawah, dan saya hanya menggunakan periode untuk satu tujuan yang sangat spesifik. Ini memiliki sifat kesederhanaan dan konsistensi, dan tidak menyebabkan masalah bagi sebagian besar variabel. Tetapi ketika segala sesuatunya menjadi lebih kompleks, saya tergoda untuk merusak konsistensi saya. Ambil, misalnya, variabel saya "talkprobmsum", akan lebih mudah dibaca sebagai "talkProbMSum" atau lebih baik lagi "talk.prob.m.sum", tetapi jika saya akan menggunakan huruf kapital atau titik untuk memisahkan kata maka tidakkah seharusnya saya melakukannya untuk semua variabel?

Beberapa variabel dicatat pada lebih dari satu kali, misalnya variabel ras jadi saya menambahkan .is atau .ih untuk menunjukkan apakah mereka berasal dari kuesioner di sekolah atau di rumah. Tapi pasti ada beberapa pengulangan yang belum saya sadari, apakah akan lebih baik untuk menambahkan referensi ke dataset dengan nama setiap variabel?

Saya perlu mengelompokkan-pusat dan menstandardisasi banyak variabel, cara saya melakukan itu adalah dengan menambahkan .zms yang berarti z-skor oleh laki-laki dan oleh sekolah.

Setiap pemikiran atau sumber daya umum atau khusus sangat dihargai. Lihat repositori ini untuk beberapa kode saya, dan statistik deskriptif dengan daftar nama variabel. Saya menjelaskan secara singkat alasan untuk membagikan kode ini di sini , dan itu dipublikasikan sedikit di sini , tetapi dua tautan terakhir ini tidak benar-benar relevan dengan masalah konvensi penamaan variabel. Ditambahkan: Saya mengedit ini dengan ringan, sebagian besar hanya memindahkan paragraf, untuk mencoba menghindari beberapa kebingungan yang terlihat dalam komentar. Terima kasih atas pemikirannya!

Ditambahkan 2016-09-05: Nilainya mencatat Hadley Wickham's R Style Guide dan Google R Style Guide ... Hadley mengatakan:

Nama variabel dan fungsi harus huruf kecil. Gunakan garis bawah (_) untuk memisahkan kata dalam nama.

Google mengatakan:

Jangan gunakan garis bawah (_) atau tanda hubung (-) dalam pengidentifikasi. Pengidentifikasi harus diberi nama sesuai dengan konvensi berikut. Bentuk yang disukai untuk nama variabel adalah semua huruf kecil dan kata-kata yang dipisahkan dengan titik (variabel.nama), tetapi variabelName juga diterima; nama fungsi memiliki huruf kapital awal dan tanpa titik (FunctionName); konstanta diberi nama fungsi seperti tetapi dengan k awal.


+1 untuk menyiapkan repositori publik untuk dibagikan kepada para peneliti, meskipun pertanyaan ini benar-benar milik Stack Overflow.
nico

6
Mengapa pertanyaan ini lebih baik di SO, @nico? Bagi saya, ini sepertinya bukan tentang pemrograman atau bahkan tentang R, melainkan tentang praktik yang tepat untuk mendokumentasikan dan menggunakan data.
whuber

4
@whuber: Saya mengerti maksud Anda. Namun, membaca pertanyaan saya melihatnya sebagai "bagaimana saya harus memanggil variabel saya?", Yang bagi saya terdengar lebih seperti masalah pemrograman dan bukan tentang statistik ... Dipikir-pikir, juga benar bahwa penonton di sini lebih dekat dengan apa yang akan menggunakan data aktual daripada SO.
nico

2
+1, saya pikir ini adalah pertanyaan & pujian yang bagus untuk melakukan ini
gung - Reinstate Monica

2
Saya pikir ini harus tetap terbuka.
gung - Reinstate Monica

Jawaban:


4

Tanggapan terbaik untuk pertanyaan ini adalah untuk menghindari itu. Pada dasarnya, tidak masalah apa nama pendek variabel selama mereka didokumentasikan dengan baik dalam codebook di suatu tempat. Sayangnya, karena R tidak memiliki sumber daya asli untuk ini, orang cenderung tidak repot-repot. (Kekurangannya, bagi saya, satu-satunya kegagalan terbesar dalam bahasa sebagai alat statistik).

Ada berbagai paket R yang menyediakan mesin ini, misalnya Hmiscyang Anda gunakan, dan memisc. Tapi sebenarnya pilihan terbaik adalah menjadikan semuanya menjadi paket R. Dengan cara itu data yang diproses dapat menjadi objek dengan halaman bantuan yang sesuai yang menggambarkan apa yang sekarang disebut semuanya dan dapat memberikan kredit di tempat yang seharusnya. Paket ini juga dapat mengekspos data mentah dan fungsi pemrosesan Anda agar orang melihat apa yang Anda lakukan untuk membuat produk akhir.

Juga, sebuah saran: jangan menyertakan data turunan seperti variabel dan versi skor-z mereka di objek data akhir sama sekali jika Anda dapat membantunya, cukup sediakan fungsi untuk membuatnya. Data yang diturunkan hanya masalah dari sudut pandang manajemen data.


Anda mengatakan bahwa nama variabel tidak penting selama didokumentasikan dengan baik ... Saya tidak ingin membuat gunung dari bukit mol, tapi saya pikir itu penting sampai taraf tertentu. Nama variabel yang sulit diingat atau sulit diketik memiliki biaya nyata dalam waktu peneliti. Terutama jika nama variabel yang sama digunakan oleh seribu peneliti. Terima kasih atas petunjuk Anda yang lain :)
Michael Bishop

4

Ini hal kecil: Saya pikir lebih baik menggunakan garis bawah daripada titik. Alasannya adalah bahwa sebagian besar bahasa pemrograman, tidak seperti R, tidak mendukung periode dalam pengidentifikasi, tetapi hampir semua mendukung menggarisbawahi. Dan saya kira Anda ingin dataset Anda bermanfaat bagi orang yang tidak menggunakan R.


1

Pertama-tama, terima kasih telah melakukan ini - saya yakin banyak orang akan menghargainya, meskipun tidak banyak yang tahu bahwa Anda melakukannya.

Antarmuka pengguna RStudio tidak (setidaknya dengan opsi default?) Menafsirkan pemisah dalam nama variabel. Sebagai contoh, Eclipse memperlakukan bagian-bagian dengan huruf besar sebagai kata-kata yang terpisah, sehingga Anda dapat menggunakan panah Ctrl + untuk dengan cepat mengedit kode gaya Java ageStandardizedMaleSchool. Saya tidak dapat menemukan alasan yang lebih baik untuk memilih satu pemisah daripada yang lain, jadi menggarisbawahi atau menutup tampaknya baik-baik saja bagi saya.

Secara umum, saya sarankan untuk membuat nama variabel lebih panjang, daripada menempel pada beberapa skema singkatan yang kompleks. Sangat mudah untuk membuat kesalahan ketik seperti talk.prob.m.sumbukan talk.prob.sum.ms, dan sulit untuk menemukan dan melacak kesalahan dalam analisis statistik. (Agak terkait: pepatah yang bagus yang saya baca di beberapa blog adalah menulis nama variabel Anda seperti kata-kata Skandinavia - SickHouse dan ToothHealer alih-alih rumah sakit dan dokter gigi .)

Pada catatan akhir: standardisasi, pemusatan dll biasanya dilakukan setelah pembersihan data. Jika tidak ada pembersihan, maka pertimbangkan untuk menyerahkannya kepada siapa pun yang akan menganalisis data. Atau, jika Anda juga melakukan pembersihan sendiri, tunjukkan semua langkah yang telah Anda ambil - analisis dan interpretasi selanjutnya mungkin sangat bergantung pada hal itu.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.