Я пишу плагин для Stata в C ++, и мне кажется, что доступ к данным зависит от порядка переменных, передаваемых плагину, как SF_vdata()
принимает только целочисленные аргументы для индексации переменных.
Лучшее решение, которое у меня есть на данный момент, — это первый запуск ds
, сохраните макрос, содержащий все имена переменных, а затем вызовите мой плагин. Мой плагин может затем найти в макросе интересующую его переменную и получить базу индекса, указав свою позицию в списке.
Это работает, но я бы хотел, чтобы мой плагин не зависел от определенных команд Stata, запускаемых первыми. Я знаю, что это глупо, так как плагин требует, чтобы набор данных был отформатирован особым образом, но что-то не так с первым вызовом ds
и сохранить макрос перед вызовом моего плагина.
Есть ли в любом случае доступ к порядку имен переменных внутри плагина, если ds
не называется первым?
Я согласен с Ником. К сожалению, ваше решение для макросов — единственный ответ, и я им пользуюсь. Вы можете получить доступ к данным напрямую, только используя функции SF_data, как «матрицу», и это все, что вы получаете по умолчанию, нет таких заголовков, как в таблице. Я использую макросы, чтобы сохранить всю информацию данных и передать весь набор данных, читая интересующую меня переменную, как и вы, и даже написал переводчики, чтобы сохранить настройки формата, но еще не использовал метки значений.
Других решений пока нет …