Импорт иностранных языков из CSV-файла в Stata

Я использую Stata 12. Я столкнулся со следующими проблемами. Я импортирую кучу файлов.csv в Stata, используя insheet команда. Наборы данных могут содержать русские, хорватские, турецкие и т. Д. Я думаю, что они закодированы в "UTF-8". В файлах.csv они правильные. После того, как я импортировал их в Stata, исходные строки неверны и становятся странными символами. Не могли бы вы помочь мне с этим? Может ли Stat-Transfer решить проблемы? Поддерживает ли он формат.csv?

Например, оригинальный файл выглядит так:

Мой код выглядит так: insheet, используя name.csv, cn save name.dta, replace

Результат похож на:

И я попытался настроить скрипт в опции шрифтов, которая не работает.

2 ответа

Обновить ответ: Начиная с версии 14, вся Stata поддерживает Unicode. Это результаты, файлы справки, файлы do, файлы ado, метки данных и т. д.

Это не помогает пользователям, ограниченным доступом к версиям Stata до 14, но является одним из решений. Используя пример ОП:

      . insheet using "/home/Alexis/Desktop/data.csv"
(3 vars, 4 obs)

. ed

. list

     +------------------------------------------------------------------------------+
     |         v1    v2                                                          v3 |
     |------------------------------------------------------------------------------|
  1. | RU00040778   RUS                                  ПРAЙCBOTEРXAУCKУПEРC AУДИT |
  2. | RU00044434   RUS                                                        КПMГ |
  3. | RU00044428   RUS                                               Эрнст энд Янг |
  4. | RU00044428   RUS   Аудиторско-консулбтационная группа Раэвитие Биэнес-систем |
     +------------------------------------------------------------------------------+

Как прокомментировал @Nick Cox ранее, проблема в том, что Stata просто не поддерживает кодировку Unicode/UTF-8. Нет, StatTransfer не решит проблему (обратитесь к этому объяснению).

Вы можете сделать трюк, используя онлайн-декодер или MS Word. Давайте сделаем это сначала одним языком, скажем, русским, как на ваших скриншотах. Проверьте правильность кодировки для хорватского, турецкого и других языков, которые у вас есть.

  1. Сохраните строковую переменную из файла.csv в виде обычного текста (.txt), выбрав опцию кодировки UTF-8.
  2. Кодировка преобразования:
    • Используйте iconv, предложенный @Dimitriy V. Masterov, или
    • Используйте онлайн-инструмент, такой как этот: загрузите файл.txt, выберите исходную кодировку как UTF-8 и выведите кодировку в соответствии с языком интереса (для русского языка это должен быть CP1251), нажмите кнопку "конвертировать" и сохраните выходной файл, или же
    • Если у вас есть MS Office, вы можете использовать MS Word для той же цели. Щелкните правой кнопкой мыши файл.txt, выберите "Открыть с помощью...", выберите "Открыть с помощью MS Word". В появившемся окне подтвердите, что кодировкой файла является "Unicode (UTF-8)", откройте, затем нажмите "Сохранить как...", чтобы сохранить как обычный текст. В появившемся окне выберите "Кириллица (Windows)" и отметьте "Вставить разрывы строк". Сохранить.
  3. Проверьте ваш новый файл.txt - в нем все еще должны быть какие-то странные символы (например, ÌßÑÎÊÎÌÁÈÍÀÒ), но теперь Stata может отображать их правильно.
  4. Скопируйте и вставьте новую строковую переменную в Stata Data Editor, щелкните правой кнопкой мыши по переменной, выберите "Шрифт...", а затем строку "Кириллица". Вы должны видеть правильные имена на экране как в редакторе данных, так и в окне результатов (даже если сама строка не повреждена).
    пример кодировки CP1251 в Stata

В зависимости от вашей ОС, вам может потребоваться сначала установить все соответствующие языки.
Надеюсь, поможет.

Другие вопросы по тегам