Saya ingin menerapkan fungsi kustom saya (itu menggunakan tangga jika-lain) sampai enam kolom ini ( ERI_Hispanic
, ERI_AmerInd_AKNatv
, ERI_Asian
, ERI_Black_Afr.Amer
, ERI_HI_PacIsl
, ERI_White
) di setiap baris dataframe saya.
Saya sudah mencoba berbagai metode dari pertanyaan lain tetapi sepertinya masih belum menemukan jawaban yang tepat untuk masalah saya. Bagian penting dari ini adalah bahwa jika orang tersebut dianggap sebagai Hispanik mereka tidak dapat dihitung sebagai hal lain. Bahkan jika mereka memiliki "1" di kolom etnis lain mereka masih dianggap sebagai Hispanik bukan dua atau lebih ras. Demikian pula, jika jumlah semua kolom ERI lebih besar dari 1 mereka dihitung sebagai dua atau lebih ras dan tidak dapat dihitung sebagai etnis yang unik (kecuali untuk Hispanik). Semoga ini masuk akal. Bantuan apa pun akan sangat dihargai.
Hampir seperti melakukan for for melalui setiap baris dan jika setiap catatan memenuhi kriteria mereka ditambahkan ke satu daftar dan dihilangkan dari aslinya.
Dari kerangka data di bawah ini saya perlu menghitung kolom baru berdasarkan spesifikasi berikut dalam SQL:
========================= KRITERIA ======================== =======
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”
Komentar: Jika Bendera ERI untuk Hispanik benar (1), karyawan tersebut diklasifikasikan sebagai "Hispanik"
Komentar: Jika lebih dari 1 Bendera ERI non-Hispanik benar, kembalikan "Dua atau Lebih"
====================== 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