Good point; and surely, as adding the qualifier
will select only positive finds.
Code:
if strpos(upper(test), "X")
NAME | WANTED | ||
QAZI, MOHAMED | QAZI, MOHAMED | ||
QAZI, MOHAMED | QAZI, MOHAMED | ||
QAZI, MOHAMED ASHRAF | QAZI, MOHAMED | ||
RADOW, NORMAN | RADOW, NORMAN | ||
RADOW, NORMAN | RADOW, NORMAN | ||
RADOW, NORMAN | RADOW, NORMAN | ||
RADOW, NORMAN J | RADOW, NORMAN | ||
RAESE, JOHN | RAESE, JOHN | ||
RAESE, JOHN R MR | RAESE, JOHN |
LAST NAME | FIRST NAME | WANTED WITH COMMA | WANTEDWITHOUT COMMA |
Qazi | Mohmed | QAZI, MOHAMED | QAZI MOHAMED |
Radow | Norman | RADOW, NORMAN | RADOW NORMAN |
* Example generated by -dataex-. For more info, type help dataex clear input str20 name "QAZI, MOHAMED" "QAZI, MOHAMED" "QAZI, MOHAMED ASHRAF" "RADOW, NORMAN" "RADOW, NORMAN" "RADOW, NORMAN" "RADOW, NORMAN J" "RAESE, JOHN" "RAESE, JOHN R MR" end gen wanted= ustrregexra(upper(name), "(\w+\,)\s+(\w+)\s+(.*)", "$1 $2")
. l, sep(0) +--------------------------------------+ | name wanted | |--------------------------------------| 1. | QAZI, MOHAMED QAZI, MOHAMED | 2. | QAZI, MOHAMED QAZI, MOHAMED | 3. | QAZI, MOHAMED ASHRAF QAZI, MOHAMED | 4. | RADOW, NORMAN RADOW, NORMAN | 5. | RADOW, NORMAN RADOW, NORMAN | 6. | RADOW, NORMAN RADOW, NORMAN | 7. | RADOW, NORMAN J RADOW, NORMAN | 8. | RAESE, JOHN RAESE, JOHN | 9. | RAESE, JOHN R MR RAESE, JOHN | +--------------------------------------+
* Example generated by -dataex-. For more info, type help dataex clear input str5 lastname str6 firstname "Qazi" "Mohmed" "Radow" "Norman" end g wanted1= upper(lastname)+ ", "+ upper(firstname) g wanted2 = upper(lastname)+ " "+ upper(firstname)
. l +----------------------------------------------------+ | lastname firstn~e wanted1 wanted2 | |----------------------------------------------------| 1. | Qazi Mohmed QAZI, MOHMED QAZI MOHMED | 2. | Radow Norman RADOW, NORMAN RADOW NORMAN | +----------------------------------------------------+
Name | year | Amount | groups |
MOHAMED QAZI | 2013 | 500 | A |
MOHAMED QAZI | 2013 | 500 | B |
MOHAMED QAZI | 2013 | 100 | A |
MOHAMED QAZI | 2014 | 1000 | A |
MOHAMED QAZI | 2014 | 1000 | A |
MOHAMED QAZI | 2014 | 1000 | A |
ANDREW MOT | 2013 | 5000 | B |
Name | year | A | B |
MOHAMED QAZI | 2013 | 600 | 500 |
MOHAMED QAZI | 2014 | 3000 | 0 |
ANDREW MOT | 2013 | 0 | 5000 |
* Example generated by -dataex-. For more info, type help dataex clear input str12 name int(year amount) str1 groups "MOHAMED QAZI" 2013 500 "A" "MOHAMED QAZI" 2013 500 "B" "MOHAMED QAZI" 2013 100 "A" "MOHAMED QAZI" 2014 1000 "A" "MOHAMED QAZI" 2014 1000 "A" "MOHAMED QAZI" 2014 1000 "A" "ANDREW MOT" 2013 5000 "B" end bys name year: g which=_n reshape wide amount, i(name year which) j(groups) string rename amount* * bys name year (which): replace A= sum(A) bys name year (which): replace B= sum(B) by name year: keep if _n==_N drop which
. l +-----------------------------------+ | name year A B | |-----------------------------------| 1. | ANDREW MOT 2013 0 5000 | 2. | MOHAMED QAZI 2013 600 500 | 3. | MOHAMED QAZI 2014 3000 0 | +-----------------------------------+
Comment