डेटासेट में परिवर्तनशील नाम


11

अच्छे चर नाम हैं:

a) टाइप करने के लिए छोटा / आसान,

बी) याद रखने में आसान,

c) समझने योग्य / संप्रेषणीय।

क्या मैं कुछ भूल रहा हूँ? संगति कुछ देखने के लिए है। जिस तरह से मैं इसे रखूंगा वह यह है कि लगातार नामकरण परंपराएं उपरोक्त गुणों में योगदान करती हैं। संगति (बी) को वापस लेने में आसानी और (सी) समझ में योगदान देता है, हालांकि अन्य कारक अक्सर अधिक महत्वपूर्ण होते हैं। (ए) नाम की लंबाई / टाइपिंग में आसानी (जैसे सभी लोअरकेस) और (सी) समझ के बीच एक स्पष्ट व्यापार है।

मैं इन मुद्दों में बहुत सोच समझकर निवेश कर रहा हूं क्योंकि हजारों लोग डेटा का उपयोग कर रहे हैं और मुझे उम्मीद है कि कई लोग डेटा तैयार करने और कुछ प्रकार के विश्लेषणों की सुविधा के लिए मेरे कोड का उपयोग करेंगे । किशोर स्वास्थ्य के अनुदैर्ध्य अध्ययन से डेटा, कई डेटासेट में टूट गया है। मेरा पहला कदम 227 चर को सबसे अधिक इस्तेमाल किए जाने वाले डेटासेट में ले जाना, उन्हें फिर से जोड़ना, उन्हें और अधिक सार्थक नाम देना था। मूल चर नाम "सहायता", "s1", "s2" जैसी चीजें हैं, जिन्हें मैंने "सहायता 2", "आयु" और "पुरुष.इस" नाम दिया है। अन्य डेटासेट में हजारों अन्य चर हैं जो शोधकर्ता के लक्ष्यों के आधार पर विलय किए जा सकते हैं।

जब तक मैं चर का नाम बदल रहा हूं, मैं उन्हें यथासंभव उपयोगी बनाना चाहता हूं। यहाँ कुछ मुद्दों पर मैंने विचार किया है। अब तक, मैंने केवल कम-केस का उपयोग किया है और किसी भी डैश या अंडरस्कोर का उपयोग करने से बचा है, और मैंने केवल एक विशेष उद्देश्य के लिए अवधि का उपयोग किया है। इसमें सरलता और निरंतरता का गुण है, और अधिकांश चर के लिए कोई समस्या नहीं है। लेकिन जैसे-जैसे चीजें और अधिक जटिल होती जाती हैं, मुझे अपनी स्थिरता को तोड़ने के लिए लुभाया जाता है। उदाहरण के लिए, मेरे वैरिएबल "टॉकप्रोम्बम" को ले लीजिए, "talkProbMSum" या बेहतर अभी भी "talk.prob.m.sum" के रूप में पढ़ना आसान होगा, लेकिन अगर मैं शब्दों को अलग करने के लिए बड़े अक्षरों या अवधियों का उपयोग करने जा रहा हूं तो क्या मुझे इसे सभी चरों के लिए नहीं करना चाहिए?

कुछ चर एक समय से अधिक दर्ज किए जाते हैं, उदाहरण के लिए दौड़ चर इसलिए मैंने जोड़ा है। यह इंगित करने के लिए कि वे इन-स्कूल या घर में प्रश्नावली से आते हैं। लेकिन निश्चित रूप से कुछ दोहराए गए हैं, जिनके बारे में मुझे अभी तक जानकारी नहीं है, क्या यह बेहतर होगा कि हर वेरिएबल के नाम पर डेटासेट का संदर्भ दिया जाए?

मुझे समूह-केंद्र की आवश्यकता है और बहुत सारे चर का मानकीकरण करना है, जिस तरह से मैंने किया है वह जोड़कर है। जो पुरुष और स्कूल द्वारा z- स्कोर का अर्थ है।

किसी भी सामान्य या विशिष्ट विचारों या संसाधनों की बहुत सराहना की जाती है। देखें इस भंडार मेरी कोड से कुछ के लिए, और चर नामों की सूची के साथ वर्णनात्मक सांख्यिकी। मैंने इस कोड को यहाँ साझा करने के कारण का संक्षेप में वर्णन किया है , और इसे यहाँ थोड़ा प्रचारित किया गया था , लेकिन ये अंतिम दो लिंक वास्तव में चर नामकरण सम्मेलनों के मुद्दे के लिए प्रासंगिक नहीं हैं। जोड़ा गया: मैंने इसे हल्के से संपादित किया, ज्यादातर सिर्फ एक पैराग्राफ को आगे बढ़ाया, कुछ टिप्पणियों में स्पष्ट भ्रम से बचने की कोशिश की। विचारों के लिए धन्यवाद!

जोड़ा गया 2016-09-05: हैडली विकम के आर स्टाइल गाइड और गूगल के आर स्टाइल गाइड को ध्यान देने योग्य ... हैडली कहते हैं:

परिवर्तनीय और फ़ंक्शन नाम लोअरकेस होना चाहिए। एक नाम के भीतर शब्दों को अलग करने के लिए एक अंडरस्कोर (_) का उपयोग करें।

Google कहता है:

पहचानकर्ताओं में अंडरस्कोर (_) या हाइफ़न (-) का उपयोग न करें। निम्नलिखित सम्मेलनों के अनुसार पहचानकर्ताओं का नाम दिया जाना चाहिए। चर नामों के लिए पसंदीदा फॉर्म सभी निचले अक्षरों और शब्दों को डॉट्स (variable.name) के साथ अलग किया जाता है, लेकिन चरनाम भी स्वीकार किया जाता है; समारोह के नाम में प्रारंभिक पूंजी अक्षर और कोई डॉट्स (फ़ंक्शननाम) नहीं है; स्थिरांक को कार्यों की तरह नाम दिया गया है लेकिन एक प्रारंभिक कश्मीर के साथ।


+1 शोधकर्ताओं के बीच साझा करने के लिए एक सार्वजनिक भंडार स्थापित करने के लिए, हालांकि यह प्रश्न वास्तव में स्टैक ओवरफ्लो से संबंधित है।
निको

6
यह प्रश्न SO, @nico पर बेहतर क्यों होगा? मेरे लिए यह प्रोग्रामिंग के बारे में या यहां तक ​​कि Rडेटा के दस्तावेजीकरण और उपयोग के लिए उपयुक्त प्रथाओं के बारे में नहीं दिखता है ।
whuber

4
@ शुभकर्ता: मुझे आपकी बात सही लगी। हालांकि, इस प्रश्न को पढ़ते हुए मैंने इसे "मैं अपने चर कैसे कहूं?" के रूप में देखा, जो मुझे एक प्रोग्रामिंग मामले की तरह लगता है और आंकड़ों के बारे में नहीं ... दूसरे विचार पर, यह भी सच है कि यहां के दर्शक करीब हैं जो कि एसओ की तुलना में वास्तविक डेटा का उपयोग करेगा।
nico

2
+1, मुझे लगता है कि ऐसा करने के लिए यह एक महान सवाल है और कुदोस
गूँज - मोनिका

2
मुझे लगता है कि इसे खुला रहना चाहिए।
गुंग - को पुनः स्थापित मोनिका

जवाबों:


4

इस सवाल का सबसे अच्छा जवाब इसे बतख करना है। मौलिक रूप से, यह बहुत मायने नहीं रखता है कि चर के संक्षिप्त नाम तब तक हैं जब तक कि वे कहीं कोडबुक में अच्छी तरह से प्रलेखित न हों। काश, आर के पास इसके लिए कोई मूल संसाधन नहीं है, लोग परेशान नहीं करते हैं। (कमी, मेरे लिए, सांख्यिकीय उपकरण के रूप में भाषा में सबसे बड़ी असफलता है)।

इस मशीनरी को प्रदान करने वाले विभिन्न आर पैकेज हैं, उदाहरण के लिए Hmiscजो आप उपयोग करते हैं, और memisc। लेकिन वास्तव में सबसे अच्छा विकल्प पूरी चीज को आर पैकेज में बनाना है। इस तरह से संसाधित डेटा एक संबंधित मदद पृष्ठ के साथ एक वस्तु हो सकता है जो बताता है कि सब कुछ अब कहा जाता है और जहां यह देय है, वह क्रेडिट असाइन कर सकता है। पैकेज लोगों के लिए कच्चे डेटा और आपके प्रसंस्करण कार्यों को भी उजागर कर सकता है, यह देखने के लिए कि आपने अंतिम उत्पाद बनाने के लिए क्या किया था।

इसके अलावा, एक सुझाव: अंतिम डेटा ऑब्जेक्ट में वैरिएबल और उनके जेड-रन किए गए संस्करणों जैसे डेटा शामिल नहीं हैं यदि आप इसकी मदद कर सकते हैं, तो इसके बजाय इसे बनाने के लिए फ़ंक्शन प्रदान करें। व्युत्पन्न डेटा केवल डेटा प्रबंधन के दृष्टिकोण से परेशानी है।


आप कहते हैं कि जब तक वे अच्छी तरह से प्रलेखित नहीं हो जाते हैं, तब तक चर नाम बहुत मायने नहीं रखते हैं ... मैं एक पहाड़ को तिल-पहाड़ी से बाहर करना नहीं चाहता, लेकिन मुझे लगता है कि वे कुछ हद तक मायने रखते हैं। परिवर्तनीय नाम जिन्हें याद रखना मुश्किल है या टाइप करना मुश्किल है, शोधकर्ता-समय में वास्तविक लागत है। खासकर यदि एक ही चर नाम एक हजार शोधकर्ताओं द्वारा उपयोग किया जा रहा है। हालांकि आपके अन्य बिंदुओं के लिए धन्यवाद :)
माइकल बिशप

4

यहाँ एक छोटी सी बात है: मुझे लगता है कि अवधियों की तुलना में अंडरस्कोर का उपयोग करना बेहतर है। कारण यह है कि आर के विपरीत अधिकांश प्रोग्रामिंग भाषाएं, पहचानकर्ताओं में अवधि का समर्थन नहीं करती हैं, लेकिन लगभग सभी अंडरस्कोर का समर्थन करती हैं। और मुझे लगता है कि आप चाहते हैं कि आपका डेटासेट उन लोगों के लिए उपयोगी हो जो R का उपयोग नहीं कर रहे हैं।


1

सबसे पहले, ऐसा करने के लिए धन्यवाद - मुझे यकीन है कि बहुत से लोग इसकी सराहना करेंगे, भले ही कई लोग यह नहीं जानते होंगे कि आपने ऐसा किया था।

RStudio उपयोगकर्ता इंटरफ़ेस कम से कम (डिफ़ॉल्ट विकल्पों के साथ?) चर नाम के भीतर किसी विभाजक की व्याख्या नहीं करता है। उदाहरण के लिए, ग्रहण पूंजीकृत भागों को अलग-अलग शब्दों के रूप में मानता है, इसलिए आप जावा-शैली कोड को जल्दी से संपादित करने के लिए Ctrl + तीरों का उपयोग कर सकते हैं ageStandardizedMaleSchool। मैं किसी भी बेहतर कारणों के साथ एक से अधिक विभाजक को पसंद नहीं कर सकता, इसलिए अंडरस्कोर या कैप मुझे ठीक लगते हैं।

सामान्य तौर पर, मैं सुझाव देता हूं कि कुछ जटिल संक्षिप्त नाम योजना से चिपके रहने के बजाय चर नामों को लंबा किया जाए। इसके talk.prob.m.sumबजाय टाइपोस बनाना आसान है talk.prob.sum.ms, और सांख्यिकीय विश्लेषण में त्रुटियों को स्पॉट और ट्रेस करना मुश्किल है। (कुछ हद तक संबंधित: एक अच्छी कहावत जो मैंने कुछ ब्लॉग पर पढ़ी है, वह है कि आप अपने परिवर्तनीय नाम जैसे स्कैंडिनेवियाई शब्द - अस्पताल और दंत चिकित्सक के बजाय सिकहाउस और टूथहाइलर लिखें ।)

एक अंतिम नोट पर: मानकीकरण, केंद्र आदि को आम तौर पर डेटा सफाई के बाद किया जाता है। यदि कोई सफाई नहीं है, तो शायद यह छोड़ने पर विचार करें कि जो कोई भी डेटा का विश्लेषण करेगा। या, यदि आप स्वयं भी सफाई कर रहे हैं, तो आपके द्वारा उठाए गए सभी चरणों को इंगित करें - बाद के विश्लेषण और व्याख्याएं उस पर बहुत कुछ निर्भर कर सकती हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.