एक्सेल में रैंडम सैंपलिंग अन्य कॉलम्स से विशिष्ट मानदंडों के आधार पर


0

मेरे पास कॉलम में फ़ाइल संख्याओं की एक सूची है A, कॉलम में फ़ाइल के साथ जुड़ा एक कोड Bऔर कॉलम में कई दिन I। उदाहरण:

File      Code     Days
12345     AAAA     100
54321     AAAA      91
67890     BBBB     115
09876     CCCC     150

डेटा की लगभग 100+ पंक्तियाँ हैं। मैं निम्नलिखित मानदंडों के आधार पर फ़ाइल संख्याओं का एक यादृच्छिक नमूना खींचना चाहूंगा:

  • कम से कम 20 फाइलें या 20% जो भी अधिक हो।
  • प्रत्येक कोड से कम से कम 1 फ़ाइल।
  • सभी फ़ाइलों में एक कोड है जो किसी भी अन्य फ़ाइलों के साथ साझा नहीं किया गया है।
  • सभी फाइलें जहां दिन 150 से अधिक हैं।

क्या यह भी संभव है?


(१) आपका तीसरा अवरोध निरर्थक प्रतीत होता है; यदि आपके पास कोड से कम से कम एक फ़ाइल है CCCC, और उस कोड के साथ केवल एक फ़ाइल है, तो, परिभाषा के अनुसार, आपके पास वह फ़ाइल है। (२) सूत्रों (उर्फ वर्कशीट फ़ंक्शंस) के साथ ऐसा करना बहुत मुश्किल हो सकता है। क्या VBA समाधान स्वीकार्य हैं?
जी-मैन

जवाबों:


2

कठिनाई यह है कि कई संभावित तरीके हैं, जो नमूने की अज्ञात अनुपातों की वजह से जा सकते हैं जैसे फ़ाइल की गिनती बनाम अद्वितीय कोड बनाम कोड की एकल फ़ाइल बनाम फाइलें> 150 दिन बनाम नंबर की वितरण। प्रति कोड फाइलें, आदि सभी संभावित मामलों के लिए एक निश्चित समाधान डिजाइन करने की कोशिश करने के बजाय, मैं एक प्रक्रिया का वर्णन करूंगा जो आपको समाधान के लिए मिलेगा। प्रत्येक चरण में कई सरल तरीके हैं जो आप इसे एक्सेल में कर सकते हैं।

इसे तीन बर्तन समझें:

  • पॉट 1 आप व्यायाम के दौरान अपने चयनित नमूनों से भरेंगे (यह पॉट एक सूची के रूप में होगा जिसे आप चयनित फ़ाइल नाम के साथ बनाते हैं)। हम इसे नमूने की सूची कहेंगे।

  • पॉट 2 में यूनिक कोड्स का संग्रह है (यह पॉट यूनिक कोड्स की एक सूची के रूप में होगा; यह देखें कि डुप्लिकेट युक्त सूची से अनूठे मानों को कैसे निकालें, यदि आप नहीं जानते कि कैसे)। इसमें वे कोड होंगे जो अभी तक चयनित नमूने द्वारा नहीं दिखाए गए हैं। हम इसे कोड सूची कहेंगे।

  • बचे हुए नमूनों की आवश्यक संख्या के लिए पॉट 3 में "टोकन" है (यह पॉट सिर्फ एक सेल में एक संख्या होगी जिसे आप नमूनों का चयन करने के मुकाबले घटाते या मिलान करते हैं)। हम इसे शेष नमूने की गिनती कहेंगे। 20 या 20% से अधिक की गणना करें और उस नंबर को इस बर्तन में डालें।

यहाँ कदम हैं:

  1. क्या उपयोग करने के लिए ओवरसैंपलिंग सीमा तय करें। आपका लक्ष्य 20% फाइलें हैं, लेकिन यादृच्छिक नमूनाकरण आपको सभी कोडों में एक समान 20% नहीं देगा (जब तक कि आप उसके लिए अतिरिक्त आवश्यकता नहीं जोड़ते हैं)। कुछ कोड 20% से कम चयनित होंगे, कुछ अधिक। गैर-यादृच्छिक नियम 20% से कोई संबंध नहीं रखेंगे। एकल फ़ाइल वाले कोड 100% सैंपल वाले होंगे। > 150 दिनों का नियम किसी दिए गए कोड के लिए 20% से अधिक फ़ाइलों का चयन कर सकता है। यदि आप इस नियम से 20% से अधिक का चयन करते हैं, तो वह कोड पहले ही ओवर-प्रतिनिधित्व हो जाएगा, इसलिए आप शायद उस कोड से बेतरतीब ढंग से नमूना लेना नहीं चाहते हैं। > 150 दिनों के नियम के लिए अधिकतम नमूना प्रतिशत (या नमूना गणना) पर निर्णय लें जिसके परे आप उस कोड को यादृच्छिक नमूने से बाहर करते हैं।

  2. दिनों> 150 के साथ सभी फ़ाइलों का चयन करें और उन्हें नमूने सूची में ले जाएं। इन फ़ाइलों की गिनती द्वारा शेष नमूनों की गणना में कमी। कोड सूची से इन फ़ाइलों द्वारा प्रतिनिधित्व किए गए कोड निकालें (फ़ाइलों के इस संग्रह के लिए अद्वितीय कोड के आधार पर)।

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

  4. कोड सूची में शेष फाइलों और कोडों में से, नमूने को किसी भी फाइल को सूचीबद्ध करें जहां वह कोड के लिए एकमात्र फ़ाइल है। इन फ़ाइलों की गिनती द्वारा शेष नमूनों की गणना में कमी। कोड सूची से इन फ़ाइलों द्वारा प्रस्तुत कोड निकालें। ध्यान दें कि चरण 5 लागू होने के आधार पर यह कदम कड़ाई से आवश्यक नहीं है। मैंने इसे स्पष्टता के लिए एक अलग चरण के रूप में तोड़ दिया और ताकि आपको किसी एक की सूची से बेतरतीब ढंग से चयन करने की आवश्यकता न हो।

  5. कोड सूची में प्रत्येक शेष कोड के लिए, यादृच्छिक रूप से उस कोड के लिए एक फ़ाइल का चयन करें और इसे नमूने सूची में ले जाएं। इन फ़ाइलों की गिनती द्वारा शेष नमूनों की गणना में कमी। कोड सूची से इन फ़ाइलों द्वारा दर्शाए गए कोडों को हटा दें (कोड्स वैकल्पिक हो सकते हैं, यह निर्भर करता है कि आप इसे कैसे लागू करते हैं; एक बार यह चरण पूरा हो जाने के बाद, कोड सूची को और अधिक की आवश्यकता नहीं होती है)।

  6. शेष नमूनों की संख्या में फ़ाइलों की संख्या के लिए, शेष फ़ाइलों से किसी फ़ाइल को बेतरतीब ढंग से चुनें और नमूने सूची में ले जाएं।

और आपने कल लिया।

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


बहुत बढ़िया जवाब! कुछ मामूली सवाल: (1) प्रश्न पर मेरी टिप्पणी आपके उत्तर पर भी लागू होती है; आपका चरण # 4 निरर्थक है, क्योंकि आप इसे हटा सकते हैं, और चरण # 5 अभी भी वांछित परिणाम देगा। (२) "इन फाइलों द्वारा दर्शाई गई संहिताओं को संहिताओं की सूची से हटा दें।" चरण # ५ में अतिशयोक्ति प्रतीत होती है, क्योंकि आप कोड सूची का फिर से संदर्भ नहीं लेते हैं।
जी-मैन

(3) मुझे यह जानने के लिए आपके उत्तर को दो बार पढ़ना था कि "चरण 3 में स्रोत सूची से इन कोडों से जुड़ी सभी फाइलों को हटा दें" का मतलब है "यह सुनिश्चित करें कि आप उन्हें चरण # 6 में नहीं चुनते हैं"। (4) ओपी का कहना है कि " कम से कम 20 फाइलें या 20% ..." आप एक नोट जोड़ना चाह सकते हैं कि वह अधिक समान वितरण प्राप्त करने के लिए नमूने के आकार को बढ़ा सकता है।
जी-मैन

on 1. आप प्रश्न पर टिप्पणी में सही थे, लेकिन यह कदम प्रक्रिया में आवश्यक है जैसा कि यह सुनिश्चित करने के लिए कि कम से कम एक का चयन किया गया है। रैंडम इसकी गारंटी नहीं देता है। 2. आप सही हैं। इस प्रक्रिया की कल्पना करने में मदद करने के लिए इसे और अधिक करने का इरादा किया गया था। यह एक आवश्यक कोडिंग कदम नहीं है। 4. नमूना आकार बढ़ाने से यह अधिक समान नहीं होगा; एक समान वितरण का उपयोग करने से यह अधिक समान हो जाएगा। ओपी ने यह सुनिश्चित करने के लिए गैर-यादृच्छिक नियम बनाए कि वांछित न्यूनतम नमूना पैटर्न को पूरा किया जाए।
फिक्सर 1234

प्रत्येक कोड से जुड़ी फाइलों की संख्या व्यापक रूप से भिन्न हो सकती है, इसलिए समान रूप से नमूना लेने की कोशिश करना मुश्किल हो जाता है। मैं आपके कुछ बिंदुओं को शामिल करने के उत्तर को संपादित करूँगा।
fixer1234

(1) चरण # 5 कहता है, "कोड सूची में प्रत्येक शेष कोड के लिए, उस कोड के लिए यादृच्छिक रूप से एक फ़ाइल का चयन करें ..." आपका क्या मतलब है, "यादृच्छिक की गारंटी नहीं है" ... "कम से कम एक का चयन किया गया है।" ? चरण # 4 अनावश्यक है, क्योंकि, अगर "कोई भी फ़ाइल जहां उस कोड के लिए एकमात्र फ़ाइल है", तो चरण # 5 बेतरतीब ढंग से एक की सूची से एक का चयन करेगा, यह गारंटी देता है कि ऐसी कोई अनोखी फ़ाइल चयनित है। (4) नहीं, नमूना आकार बढ़ाने से यह अधिक समान नहीं होगा, लेकिन यह आपको चरण # 2 के कारण असंतुलित होने का मुकाबला करने के लिए दिनों की संख्याओं में फ़ाइलों का चयन करके इसे और अधिक समान बनाने की अनुमति देगा
जी-मैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.