<>
Assumes string variable is lowercase. Easy to modify that with lower(), upper(), etc.
clear
input var1 str1 var2
1 a
1 a
1 a
1 b
2 m
2 m
2 n
2 n
2 n
2 p
3 c
3 c
3 c
3 c
end
local alpha = subinstr("`c(alpha)'", " ", "", .)
g av2 = strpos("`alpha'", var2)
egen t = tag(var1 av2)
egen av3 = rank(av2) if t, by(var1)
bys var1 av2: egen av4 = mean(av3)
l
Kit Baum | Boston College Economics & DIW Berlin | http://ideas.repec.org/e/pba1.html
An Introduction to Stata Programming | http://www.stata-press.com/books/isp.html
An Introduction to Modern Econometrics Using Stata | http://www.stata-press.com/books/imeus.html
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/