Проблема с "уничтожением" и сохранением десятичных знаков - PullRequest
0 голосов
/ 27 мая 2018

Я новичок в Stata, и я предполагаю, что это вопрос новичка.Тем не менее я только что провел последний час, пытаясь найти ответ в интернете, но безрезультатно!

Я использую данные о ВВП Всемирного банка (импортированные из файла csv), и данные представлены в строковом формате.Когда я destring, данные ВВП, содержащие десятичные разряды, игнорируются и просто выдаются в виде большого числа.

 destring yr*, replace ignore("..")

Вот пример моих данных:

yr2016
205276172134.901
..
13397100000

Когда я запускаю команду, которую я написал, она преобразуется в:

yr2016
2.053e+14

1.340e+10

Как вы можете видеть, .901 был добавлен в число вместо того, чтобы восприниматься как десятичный пробел.

Я пытался:

set dp period

Но это не сработало.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Проблема в том, что опция ignore() удаляет каждый экземпляр . в строковой переменной, Stata - , а не , ища последовательность из двух последовательных ...В этом случае нет необходимости использовать ignore.Попробуйте destring var, replace force и разрешите Stata установить строки с .. на пропущенные.

0 голосов
/ 27 мая 2018

Вам просто нужно установить format преобразованной переменной:

clear
set obs 1

generate string = "205276172134.901"

destring string, generate(numeric)

list

   +------------------------------+
   |           string     numeric |
   |------------------------------|
1. | 205276172134.901   2.053e+11 |
   +------------------------------+

format numeric %18.0g

list

   +-------------------------------------+
   |           string            numeric |
   |-------------------------------------|
1. | 205276172134.901   205276172134.901 |
   +-------------------------------------+

Тип help format для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...