Комментарии в Stata и Mata: Редактор файлов против командной строки - PullRequest
0 голосов
/ 16 мая 2018

Обычно я работаю в другом текстовом редакторе и просто копирую и вставляю свою работу в командную строку Stata.Однако я заметил разницу между тем, как командная строка и редактор файлов do обрабатывают комментарии.

Приведенный ниже код воспроизводит обнаруженные мной вещи:

mata
//test comment
/* test comment 2 */
end

//test comment 3
*test comment 4
/* test comment 5*/

При запуске из редактора файлов do код выполняется без проблем.

Но когда я запускаю его после копирования и вставки в командную строку, я получаю ряд r(3000) ошибок в mata и r(199) ошибок в Stata.

Единственное исключениев том, что комментарии * в обычном Stata прекрасно работают в обоих интерфейсах.

Я также вижу, что комментарий // в mata выдает сообщение об ошибке «Неверное выражение» вместе с уведомлением r(3000), но я получаю сообщение r(3000) только при использовании комментария /* text */.В обычной Stata оба типа комментариев, которые не * дают "/ не является допустимым именем команды", а также r(199).

Мой главный вопрос:

  • В чем причина этого различия?Могу ли я что-нибудь сделать, чтобы подавить эти ошибки?

Кроме того, для меня это что-то вроде красного флага:

  • Существуют ли другие варианты поведения, которые меняются при запуске?вещи через командную строку, а не do редактор файлов?

1 Ответ

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

Следующее Техническое примечание из 16-го руководства Stata о Do-файлах объясняет:

"... Индикаторы комментариев / * * /, // и /// можно использовать только в do-файлах и ado-файлах; вы не можете использовать их в интерактивном режиме. Однако вы можете используйте индикатор комментария '*' в интерактивном режиме ... "

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

Только StataCorp знает наверняка, но такие различия, вероятно, возникают из-за того, как Stata интерпретирует код внутри, когда он анализируется из файла do или командной строки.

См. Следующий пост для другого (несвязанного) примера несовместимого поведения:

Лично после интенсивного использования Stata в течение многих лет я не заметил каких-либо других существенных отличий при запуске кода из файлов do и в интерактивном режиме.

...