मैं (यह एक करता है, तो-और कुछ सीढ़ी का उपयोग करता है) इन छह कॉलम (करने के लिए अपने कस्टम समारोह लागू करना चाहते हैं ERI_Hispanic
, ERI_AmerInd_AKNatv
, ERI_Asian
, ERI_Black_Afr.Amer
, ERI_HI_PacIsl
, ERI_White
मेरी dataframe की प्रत्येक पंक्ति में)।
मैंने अन्य प्रश्नों से अलग तरीकों की कोशिश की है, लेकिन फिर भी अपनी समस्या के लिए सही उत्तर नहीं खोज पाया। इसका महत्वपूर्ण टुकड़ा यह है कि यदि व्यक्ति को हिस्पैनिक के रूप में गिना जाता है तो उन्हें किसी और चीज के रूप में नहीं गिना जा सकता है। यहां तक कि अगर उनके पास एक और जातीयता स्तंभ में "1" है, तो उन्हें अभी भी हिस्पैनिक नहीं दो या अधिक दौड़ के रूप में गिना जाता है। इसी तरह, यदि सभी ईआरआई कॉलम का योग 1 से अधिक है, तो उन्हें दो या अधिक दौड़ के रूप में गिना जाता है और एक अद्वितीय जातीयता (हिस्पैनिक को छोड़कर) के रूप में नहीं गिना जा सकता है। उम्मीद है कि यह समझ में आता है। किसी भी प्रकार की सहायता सराहनीय होगी।
इसका लगभग प्रत्येक पंक्ति के माध्यम से लूप के लिए करना पसंद है और यदि प्रत्येक रिकॉर्ड एक कसौटी पर खरा उतरता है तो उन्हें एक सूची में जोड़ दिया जाता है और मूल से समाप्त कर दिया जाता है।
नीचे दी गई डेटाफ्रेम से मुझे एसक्यूएल में निम्नलिखित युक्ति के आधार पर एक नए कॉलम की गणना करने की आवश्यकता है:
============================ CRITERIA ========================= =======
IF [ERI_Hispanic] = 1 THEN RETURN “Hispanic”
ELSE IF SUM([ERI_AmerInd_AKNatv] + [ERI_Asian] + [ERI_Black_Afr.Amer] + [ERI_HI_PacIsl] + [ERI_White]) > 1 THEN RETURN “Two or More”
ELSE IF [ERI_AmerInd_AKNatv] = 1 THEN RETURN “A/I AK Native”
ELSE IF [ERI_Asian] = 1 THEN RETURN “Asian”
ELSE IF [ERI_Black_Afr.Amer] = 1 THEN RETURN “Black/AA”
ELSE IF [ERI_HI_PacIsl] = 1 THEN RETURN “Haw/Pac Isl.”
ELSE IF [ERI_White] = 1 THEN RETURN “White”
टिप्पणी: यदि हिस्पैनिक के लिए ईआरआई ध्वज सच है (1), तो कर्मचारी को "हिस्पैनिक" के रूप में वर्गीकृत किया गया है।
टिप्पणी: यदि 1 से अधिक गैर-हिस्पैनिक ईआरआई ध्वज सत्य हैं, तो "दो या अधिक" लौटाएं
==================== DATAFRAME =============================
lname fname rno_cd eri_afr_amer eri_asian eri_hawaiian eri_hispanic eri_nat_amer eri_white rno_defined
0 MOST JEFF E 0 0 0 0 0 1 White
1 CRUISE TOM E 0 0 0 1 0 0 White
2 DEPP JOHNNY 0 0 0 0 0 1 Unknown
3 DICAP LEO 0 0 0 0 0 1 Unknown
4 BRANDO MARLON E 0 0 0 0 0 0 White
5 HANKS TOM 0 0 0 0 0 1 Unknown
6 DENIRO ROBERT E 0 1 0 0 0 1 White
7 PACINO AL E 0 0 0 0 0 1 White
8 WILLIAMS ROBIN E 0 0 1 0 0 0 White
9 EASTWOOD CLINT E 0 0 0 0 0 1 White