स्टाटा फॉरेक्स में लापता चर बदलें


मैं स्टेटा में एक foreach लूप लिखने की कोशिश कर रहा हूं जो कि सभी n. a. मान है कि मेरे पास मेरे डाटाबेस पर अनुपलब्ध मूल्य (। ए) है। मेरे पास निम्न कोड है: मैंने अपने वैरिएबल को मेरे डेटासेट में सभी चर के साथ परिभाषित किया है, लेकिन मुझे एक प्रकार की बेमेल त्रुटि मिलती है। मैंने केवल एक चर के साथ प्रतिस्थापन कमांड की कोशिश की और मुझे पता चला कि त्रुटि संख्यात्मक चर से संबंधित है। किसी भी विचार से मैं यह काम सभी चर के लिए अग्र के साथ कैसे कर सकता हूं या क्या मुझे केवल स्ट्रिंग वेरिएबल्स का चयन करने की जरूरत है जो कि 6 नवंबर को 22:35 पर दिया गया था। यह कोड वास्तव में स्ट्रिंग चर पर ही लागू होता है। रेखा पर विचार करें इस पंक्ति में दो स्थितियों के अंतर्गत प्रकार बेमेल त्रुटि लौटा दी गई है: स्ट्रिंग असाइन करने की कोशिश करने से। ए (जो कि अनुपलब्ध मूल्य से अलग है। ए) एक संख्यात्मक चर में है, और जांचने की कोशिश कर रहा है कि क्या एक संख्यात्मक चर समानता के बराबर है स्ट्रिंग ना । निम्नलिखित कोड केवल स्ट्रिंग चर का चयन करके समस्या को टालते हैं (सरल कॉम्प्लेक्स के सुझावों के लिए धन्यवाद)। यह उपयोगी चेतावनी निक कॉक्स से है: साथ ही, स्थानीय मैक्रो को स्ट्रिंग असाइन करने के लिए चिह्नों के बराबर का उपयोग करते समय देखें। स्ताटा के कई संस्करणों में, तार स्ट्रिंग अभिव्यक्ति की लंबाई पर एक सीमा के कारण कम कर दिया जाएगा। रॉबर्टोस का जवाब पढ़ने के बाद जोड़ा गया रोबर्टोस उदाहरण वाकई उपयोगी हैं विशेष रूप से, मैंने एनएए के मुद्दे के बारे में सोचा था। मूल्य लेबल के रूप में मैंने एक उदाहरण पर और एक कोड के लिए विस्तार किया है जो n. a. के रूप में चिह्नित मानों की जगह लेता है लापता मूल्य के साथ। ए कुछ उदाहरणों पर विचार करें वेरिएबल संख्यात्मक है लेकिन लेबल संलग्न हैं। N. a. के लेबल के साथ टिप्पणियां यादों के साथ प्रतिस्थापित किया गया है वेरिएबल स्ट्रिंग का प्रकार है। तारों को अन्य तारों के साथ बदल दिया गया था। यह वास्तव में याद नहीं हैं, जहां तक ​​स्टेटा का संबंध है। इसका कोई खास अर्थ नहीं है। निम्नलिखित काम नहीं करता है और शायद आपका मामला है। आपके पास एक संख्यात्मक वैरिएबल (लेबल के साथ फिर से) है और आप स्ट्रेट वर्णों की जांच करने के लिए स्टाटा पूछ रहे हैं। इस प्रकार, एक प्रकार का बेमेल है वैसे भी, आपका कोड वेरिएबल्स को संबोधित कर रहा है जैसे कि वह स्ट्रिंग टाइप (लूप में इस्तेमाल किए गए उद्धरणों के कारण) थे। यदि आप विस्तारित लापता मान (.a) का उपयोग करना चाहते हैं, तो चर संख्यात्मक होना चाहिए। सिस्टम मिस्ड और विस्तारित मिस्ड केवल उनके लिए लागू होते हैं स्ट्रिंग प्रकारों के लिए केवल एक रिक्त () खाली है ऐसा लगता है कि आपके द्वारा रिपोर्ट की गई त्रुटि के कारण आपके पास संख्यात्मक चर है यदि आपके चर सभी स्ट्रिंग प्रकार थे, तो आप एक प्रकार की बेमेल त्रुटि प्राप्त नहीं करेंगे। फिर भी, आप कुछ एनए। का उल्लेख करते हैं जो कि मैं मान लेबल लेता हूं। मान लेबल के अंतर्गत, कुछ संख्यात्मक मान है आप उन्हें चल रहे सूची देख सकते हैं, नोलबेले अगर ऐसा मामला है, तो आप n. a. के बराबर मान लेबल्स से संबंधित संख्यात्मक मानों को बदल सकते हैं, जैसे कुछ के साथ: ध्यान दें कि वेरिएबल x के लिए मूल्य लेबल n. a. मूल्य 3 के लिए मैप किया गया है, जबकि चर y के लिए यह मान 4 के लिए मैप किया गया है। इस प्रकार, एक चर के लिए आप 3 के मानों को बदलना चाहते हैं, और दूसरे के लिए, 4 के मान। कोड स्वयं का ध्यान रखेगा। इसके अतिरिक्त, स्ताट अब बदले गए मूल्यों को याद करते हैं। सहायता लेबल देखें मदद लापता और stackoverflowa259425202077064 जो बताता है कि कैसे प्रतिस्थापन की स्थिति में कार्य करना है। यदि आपको एक विशिष्ट प्रकार के चर का चयन करना है, तो ऐस्पन चेन ने पहले ही डीएस का उल्लेख किया है। अन्य विकल्प द स्टैटा जर्नल (2010) 10, नंबर 2, पीपी। 2812 9 6, स्पीटिंग स्टेटा: फाइंडिंग वैरिएबल में पाया जा सकता है। निक कॉक्स द्वारा (वेब पर स्वतंत्र रूप से उपलब्ध है।) आपका स्वागत है मुझे अभी भी लगता है कि आपकी समस्या विदेशी मुद्रा पाश के साथ नहीं है, लेकिन स्टेटा में लेबल्स, मिशन्स और चर प्रकार की अवधारणाओं के साथ। यदि आपके पास स्ट्रिंग वेरिएबल्स हैं जिन्हें आप miss. Aquot को निर्दिष्ट करने के लिए निर्दिष्ट करते हैं, तो वह आपकी पसंद है और अंततः संभाला जा सकता है। लेकिन मैं सिर्फ ज़ोर देना चाहता हूं कि स्ताट यह नहीं मानते कि गायब है और इसलिए, यह जाने का प्राकृतिक तरीका नहीं है। ईमानदारी से, I39m अभी भी सुनिश्चित नहीं है कि आपकी समस्या क्या थी और मेरा उत्तर अनुमान पर आधारित है। मुझे पता नहीं है, हालांकि, अगर यह अनुमान सही है तो यह भविष्य के पाठकों के लिए यह स्पष्ट करने के लिए सहायक होगा। ndash रॉबर्टो फेरर 7 नवंबर 14 को 15:50 मेरे पास quotn. a.quot के साथ एक डेटाबेस है: उपलब्ध नहीं quot-quot लागू नहीं है। मैंने उन्हें बदलने और विभिन्न लापता कोड बनाने के लिए foreach पाश का इस्तेमाल किया। quot. aquot, quot. bquot बाद में मैं डस्टरिंग का इस्तेमाल किया। मैं अपनी समस्या का समाधान करता हूं, उम्मीद अब स्पष्ट है लेकिन मैं आपको अपने डाटाबेस के विवरण के साथ परेशान नहीं करना चाहता, बस मूल विचार प्राप्त करें, जो आप वास्तव में अच्छी तरह से समझाते हैं, और वहां से काम करते हैं। तो यह वास्तव में सहायक था, धन्यवाद फिर से आशा है कि अब स्पष्ट है। ndash Emanuel 7 नवम्बर 16 पर: 20Stata: डेटा विश्लेषण और सांख्यिकी सॉफ्टवेयर निकोलस जे। कॉक्स, डरहम विश्वविद्यालय, यूके 1. समस्याएं अक्सर पड़ोसी गैर-मूविंग मूल्यों द्वारा याद किए गए मूल्यों को बदलना चाहते हैं, खासकर जब कुछ निश्चित क्रम में अक्सर टिप्पणियां होती हैं (लेकिन हमेशा नहीं) एक समय आदेश आमतौर पर, यह तब होता है जब कुछ वैरिएबल के मूल्यों को अवलोकन के ब्लॉकों के समान होना चाहिए, लेकिन, किसी कारण के लिए, डेटा विशिष्ट रूप से केवल कुछ टिप्पणियों के लिए, केवल सबसे पहली बार डेटासेट के भीतर नहीं मानता है। अतः, अवलोकन के ब्लॉकों के भीतर मूल्यों की प्रतिलिपि बनाने की इच्छा है वैकल्पिक रूप से, उपयोगकर्ता अनुक्रम में अक्सर याद किए गए मानों को बदलना चाहते हैं, आमतौर पर एक समय अनुक्रम में। इन समस्याओं को समान तरीकों से हल किया जा सकता है। एक अलग स्थिति, इस अकसर किये गए सवाल में सीधे संबोधित नहीं है, जब कुछ समय-भिन्न चर के मूल्य केवल कुछ टिप्पणियों के लिए जाना जाता है। तब ज्ञात मूल्यों के बीच आरोपण या प्रक्षेप की आवश्यकता है अंतिम मूल्य की अगली प्रतिलिपि को प्रक्षेप की एक अच्छी पद्धति होने की संभावना नहीं है, जब तक कि केवल कहा न हो, यह ज्ञात है कि मानकों के अनुसार एक निर्धारित स्तर पर स्थिरता अगले स्तर तक जारी रहेगी। किसी भी तरह, अभिकर्मक या प्रक्षेप के लिए वर्णित विधियों को लागू करने वाले प्रयोक्ता जो भी करते हैं, उनकी ज़िम्मेदारी लेते हैं। 2. बिना tsset: nonmissing मानों की प्रतिलिपि बनाते समय हम पहले इस मामले को देखते हैं, जहां आपने अपने डेटा को नहीं लिखा है (उदाहरण के लिए, उदाहरण के लिए, टीएस टीएसएसटी स्पष्टीकरण के लिए देखें), लेकिन हम मान लें कि डेटा सही सॉर्ट क्रम में डाल दिया गया है , टाइप करके, टाइप करें, यदि अनुपलब्ध मानों को एकसाथ किया गया है, तो उन्हें पिछले मान से या निम्न मूल्य से प्रतिस्थापित किया जा सकता है यहां उपयोग किए गए सबस्क्रिप्ट नोटेशन यह है कि एन हमेशा किसी भी अवलोकन को संदर्भित करता है, nminus1 को पिछले अवलोकन और एन 1 से निम्नलिखित अवलोकन, मौजूदा सॉर्ट क्रम को देखते हुए निश्चित रूप से, पहले, या आखिरी के बाद कोई अवलोकन नहीं है, इसलिए myvar0 हमेशा याद नहीं होता है, जैसे कि किसी भी अवलोकन संख्या के लिए myvar जो नकारात्मक या डेटा में टिप्पणियों की संख्या से अधिक है। सबस्क्रिप्टिंग के बारे में अधिक जानकारी के लिए यू 13.7 देखें। लापता (माइवर) दोनों संख्यात्मक यादों और स्ट्रिंग यादों को पकड़ता है। यदि म्यूवर संख्यात्मक है, तो आप लिख सकते हैं क्योंकि लेफ्टिनेंट। ए एलटी.बी लेफ्टिनेंट। लेफ्टिनेंट। जे अंकीय लापता मूल्य हैं अधिकांश समस्याओं में संख्यात्मक मूल्यों को शामिल करना शामिल है, इसलिए, अब से, उदाहरण केवल संख्यात्मक चर के लिए होंगे। हालांकि, यदि myvar स्ट्रिंग थे, तो सही सिंटैक्स होगा, पिछली कमांड नहीं, क्योंकि रिक्त स्ट्रिंग स्ट्रिंग अनुपलब्ध है। 3. पिछला मूल्यों को नीचे की ओर कॉपी करना: झरना प्रभाव दो या दो से अधिक के ब्लॉक में गुम होने की संभावनाएं हो सकती हैं मान लीजिए कि आप पिछले गैर-मिसिंग मान द्वारा यादें बदलना चाहते हैं, जब भी ऐसा हो, तो आपको केवल myvar2 को प्रतिस्थापित करना चाहिए। लेकिन 42 के साथ myvar3 भी एक इंटरैक्टिव समाधान है, लेकिन, बड़े डेटासेट के लिए, आपको आगे बढ़ने का अधिक व्यवस्थित तरीका चाहिए। इसे प्राप्त करने के लिए, यह जानने में मदद मिलती है कि वर्तमान सॉर्ट क्रम का उपयोग हमेशा से बदलता रहता है: अवलोकन 2 का मान हमेशा अवलोकन 3 से पहले बदल जाता है, इसलिए 2 के लिए प्रतिस्थापन मूल्य 3 के लिए प्रतिस्थापन मूल्य की गणना में इस्तेमाल किया जा सकता है। उद्देश्य। myvar1 अपरिवर्तित है, क्योंकि myvar1 अनुपलब्ध है। myvar2 myvar1 के मान द्वारा प्रतिस्थापित किया गया है अर्थात्, 42, क्योंकि myvar2 गुम है। लेकिन myvar3 myvar2 के नए मान द्वारा प्रतिस्थापित किया गया है। 42, इसके मूल मूल्य नहीं, गायब (।) इस तरह, बिना नकल मूल्यों को मौजूदा सॉर्ट क्रम के नीचे कैस्केड में कॉपी किया जाता है स्वाभाविक रूप से, डेटा की शुरुआत में एक या अधिक लापता मूल्यों को इस तरह से बदला नहीं जा सकता है, क्योंकि कोई भी गैर-गलती मान उनमें से किसी से पहले नहीं है क्या होगा यदि आप केवल पिछले मान का उपयोग करना चाहते हैं और इस झरना प्रभाव को नहीं चाहते हैं, तो आपको वैरिएबल की प्रतिलिपि बनाने की आवश्यकता है और उस से प्रतिस्थापित करें: मेरीकोपी में कोई प्रतिस्थापन नहीं किया जा रहा है इसलिए कोई झरना प्रभाव नहीं है। बस मेरीकोपी में दिखता है और एक अवलोकन वापस। 4. निम्नलिखित मूल्यों को ऊपर की ओर प्रतिलिपि बनाकर विपरीत मामला निम्नलिखित मूल्यों से प्रतिस्थापन है, परन्तु, क्योंकि मौजूदा सॉर्ट क्रम को बदलता है, यह केवल पिछले मानों द्वारा प्रतिस्थापन की दर्पण छवि नहीं है। व्यवहार में, श्रृंखला को उलट करना और दूसरी तरफ काम करना सबसे आसान है। जीएसआरटी आपको रिवर्स सॉर्ट ऑर्डर प्राप्त करने की अनुमति देता है डी जीएसओआर देखें कमांड सॉर्ट समय सर्वोच्च मान देता है, जबकि जीएसआरटी मिनिस्टेम उच्चतम मूल्यों को पहले रखता है। ऐसा लगता है जैसे आपने एक वेरिएबल जेनरेट किया था, जो कि शून्य से 1 गुणा और उस पर सॉर्ट किया गया था, और वास्तव में, यह बिल्कुल वैसा ही होता है जो पर्दे के पीछे करता है, हालांकि चर अस्थायी है और इसके उद्देश्य के बाद गिरा दिया जाता है। एक झरना प्रभाव नहीं उत्पन्न करता है myvar2 मौजूदा myvar3 द्वारा प्रतिस्थापित किया जाएगा myvar3 मौजूदा myvar4 द्वारा प्रतिस्थापित किया जाएगा इत्यादि। सबसे अधिक, लापता मूल्यों के किसी भी ब्लॉक में से एक को प्रतिस्थापित किया जाएगा। यह निश्चित तौर पर हो सकता है कि आप क्या चाहते हैं। एक बार फिर, श्रृंखला के अंत में किसी भी लापता मूल्यों के बारे में कुछ भी नहीं किया जा सकता (जीएसओआरटी के बाद शुरुआत में) प्रतिस्थापन के बाद, आप शायद सॉर्टिंग को 5 बार फिर से उलटा रहे होंगे। जटिलताएं: कई चर और पैनल संरचना दो सामान्य जटिलताएं हैं आप इसे कई चर के साथ करना चाहते हैं: उपयोग करें foreach एक बार सॉर्ट करें या एक बार, foreach का उपयोग करके सभी चर को बदल दें। और, यदि आवश्यक हो, फिर से वापस सॉर्ट करें आपके पास पैनल डेटा है, इसलिए उचित प्रतिस्थापन पैनल में प्रत्येक व्यक्ति के लिए एक पड़ोसी गैरमार्ग मूल्य है। मान लीजिए कि व्यक्ति आईडी द्वारा पहचाने जाते हैं समीक्षा के लिए कुछ अतिरिक्त विवरण हैं, जैसे कि पैनल डेटा के साथ कई डेटा प्रबंधन समस्याओं की कुंजी निम्नानुसार कुछ कम्प्यूटेशंस द्वारा क्रमबद्ध है:। अधिक जानकारी के लिए, निम्न के अंतर्गत अनुक्रमित मैनुअल के अनुभाग देखें:। 6. tsset के साथ यदि आपके डेटा को tsset है, तो कहें, टाइपिंग से कास्केड में प्रतिलिपि का असर होता है, जबकि इसका कोई प्रभाव नहीं होता है टीएससीएटी का मान यह है कि यह आपके डेटा में अंतराल के खाते को लेता है और (अगर आपने एक पैनल वैरिएबल घोषित किया है) तो आपके डेटा पर किसी भी पैनल की संरचना है। अनुक्रमों में लापता मान कुछ डेटासेट में, समय के चर अंतराल के साथ आते हैं, जैसे कुछ हम एक समान विधि का उपयोग कर सकते हैं और कैस्केडिंग पर भरोसा कर सकते हैं: अंतर यह है कि प्रत्येक मान पिछले एक से अधिक है यदि डेटा प्रति दशक में एक बार होता है, तो प्रत्येक मान 10 और अधिक होगा, और आगे भी। फिर से अनुक्रम की शुरुआत में लापता मूल्यों की विशेष सर्जरी की आवश्यकता है, जैसा कि यहां दिखाया गया है। टीएसएसएटी पैनल डेटा के साथ साल 1 के बजाय एल 1 साल का इस्तेमाल होता है।

Comments