Comment renommer plusieurs variables avec de la ficelle de suffixes

Dans Stata, j'ai un ensemble de variables qui commencent toutes par pkg. Dans leur état actuel, leurs terminaisons sont les numériques: pkg1, pkg2, pkg3, pkg4 et ainsi de suite.

J'ai besoin de changer l'ensemble de ces variables' terminaisons des chaînes: pkgmz, pkggmz, pkgsp, pkgsptc etc.

J'ai une colonne de la chaîne de ces terminaisons, qui je peut désigner comme une liste locale.

Par exemple:

local croplist mz gmz sp sptc mil cof suk tea ric

Comment puis-je changer le numérique terminaisons de la chaîne de terminaisons?

Ma deviner le code peut être trouvé ci-dessous et le ??? indiquer où je suis perplexe:

local croplist crops mz gmz sp sptc mil cof suk tea ric

foreach x of varlist pkg* {
    local new1 = substr(`x', 1, 3)
    local new2 = ???
    rename `x' ``new1'`new2''
    label var ``new1'`new2'' "Avg district level `new2' price"
}

Je me demande si il serait mieux d'utiliser le regexr() de commande, mais ne peut pas penser à un moyen de l'inclure.

Toute aide est appréciée.

OriginalL'auteur ben | 2012-12-03