Hello everyone,

Stata beginner here. I am currenly doing research on the trade effects of currency unions and I want to construct a dummy variable which indicates whether an exporter uses a multinational currency (cur_origin) with any trade partner other than the importer (cur_destination) (i.e., an outsider). Below are the first lines of code I used:

Code:
gen byte onein_exporter = 1 if cur1_o == "GBP" & cur1_d != "GBP" & cur2_d != "GBP"
replace onein_exporter = 1 if cur2_o == "GBP" & cur1_d != "GBP" & cur2_d != "GBP" 
replace onein_exporter = 1 if cur1_o == "USD" & cur1_d != "USD" & cur2_d != "USD"
replace onein_exporter = 1 if cur2_o == "USD" & cur1_d != "USD" & cur2_d != "USD" 
replace onein_exporter = 1 if cur1_o == "EUR" & cur1_d != "EUR" & cur2_d != "EUR"
replace onein_exporter = 1 if cur2_o == "EUR" & cur1_d != "EUR" & cur2_d != "EUR" 
replace onein_exporter = 1 if cur1_o == "NZD" & cur1_d != "NZD" & cur2_d != "NZD"
replace onein_exporter = 1 if cur2_o == "NZD" & cur1_d != "NZD" & cur2_d != "NZD"

replace onein_exporter = 0 if onein_exporter == .
First of all, this works perfectly fine!
However, since there are many more lines, always writing "replace onein_exporter = 1 if ..." feels a little bit cumbersome and I just wondered whether there is a more simple way to get the same result with less code. Hence, I experimented with the "|" operator...

Code:
#delimit ; 
gen byte onein_exporter = 1 if cur1_o == "GBP" & cur1_d != "GBP" & cur2_d != "GBP" |
cur2_o == "GBP" & cur1_d != "GBP" & cur2_d != "GBP" | 
cur1_o == "USD" & cur1_d != "USD" & cur2_d != "USD" | 
cur2_o == "USD" & cur1_d != "USD" & cur2_d != "USD" | 
cur1_o == "EUR" & cur1_d != "EUR" & cur2_d != "EUR" | 
cur2_o == "EUR" & cur1_d != "EUR" & cur2_d != "EUR" | 
cur1_o == "NZD" & cur1_d != "NZD" & cur2_d != "NZD" | 
cur2_o == "NZD" & cur1_d != "NZD" & cur2_d != "NZD"  
;
...as well as:

Code:
gen byte onein_exporter = 1 if cur1_o == "GBP" & cur1_d != "GBP" & cur2_d != "GBP"

#delimit ; 
replace onein_exporter = 1 if cur2_o == "GBP" & cur1_d != "GBP" & cur2_d != "GBP" |
cur2_o == "GBP" & cur1_d != "GBP" & cur2_d != "GBP" | 
cur1_o == "USD" & cur1_d != "USD" & cur2_d != "USD" | 
cur2_o == "USD" & cur1_d != "USD" & cur2_d != "USD" | 
cur1_o == "EUR" & cur1_d != "EUR" & cur2_d != "EUR" | 
cur2_o == "EUR" & cur1_d != "EUR" & cur2_d != "EUR" | 
cur1_o == "NZD" & cur1_d != "NZD" & cur2_d != "NZD" | 
cur2_o == "NZD" & cur1_d != "NZD" & cur2_d != "NZD" 
;
However, for these I always receive the error message "invalid name" or "invalid syntax", respectively.
Does someone know of a different way to do what I intend?

Best,
Noah