2015-05-18 3 views
-2

В настоящее время я очищаю набор данных с почтовыми индексами для геокодирования их в ArcMAP.Изменение переменной почтового индекса в Stata

В настоящее время почтовые индексы очищены, чтобы удалить все пробелы (ведущие, конечные, промежуточные и т. Д.). Я хотел бы вставить пробел перед последними тремя символами и не знаю, как это сделать. Это строковая переменная.

gen str8=postcodenew=subinstr(postcode," ", "", .) 

Я сделал это, чтобы удалить пробелы, но теперь хочу ввести один из трех символов от последнего символа.

+2

Это было бы, по мнению некоторых, как не по теме. Вы только запрашиваете код о том, как выполнять какую-то конкретную задачу, и не показываете никаких попыток или исследований. На этом этапе прочитайте информацию, предоставленную в [справочном центре] (http://stackoverflow.com/help/asking). Что касается Stata, попробуйте 'help string functions'. –

+0

Я пробовал, я сделал все функции itrim, rtrim, чтобы получить почтовые индексы в этом формате XXXX XXX, но некоторые из них не имеют пробелов в них, а некоторые делают. По этой причине я удалил все пробелы и не хочу добавлять в пробе три символа с конца, но я не уверен, как это сделать. Некоторые почтовые индексы имеют три символа в начале, а некоторые - три, поэтому не могут указывать конкретную точку отсечения для разделения переменной – Exodia16

ответ

1

Код дал

gen str8=postcodenew=subinstr(postcode," ", "", .) 

является незаконным, но предположительно опечатка для

gen str8 postcodenew = subinstr(postcode," ", "", .) 

Что разыскивается может быть

gen postcodenew2 = substr(postcodenew, 1, length(postcodenew) - 3) + " " + substr(postcodenew, -3, 3)