2013-03-26 97 views
1

我正在爲C++編寫一個Stata插件,在我看來,訪問數據取決於傳遞給插件的變量順序,因爲SF_vdata()僅需要整數參數來索引變量。如何製作不依賴於變量順序的Stata插件?

我現在最好的解決方案是首先運行ds,存儲包含所有變量名稱的宏,然後調用我的插件。然後,我的插件可以在宏中搜索它感興趣的變量,並獲取索引庫在列表中的位置。

這有效,但我希望我的插件不要依賴於某些Stata命令首先運行。我知道這很愚蠢,因爲插件需要以特定的方式對數據集進行格式化,但是在調用我的插件之前首先必須調用ds並存儲宏,感覺有些問題。

如果不先調用ds,有沒有辦法從插件中訪問變量名的順序?

+1

插件得到StataCorp的支持很大程度上是因爲有些人聲稱他們想要或需要他們,但公衆的吸引力非常小。 (在大型公司或機構內開發純粹供內部使用的代碼的例外情況很可能存在)。無論哪種方式 - 我知道這不太可能成爲您尋求的答案 - 我的猜測是,您會發現它更容易,更容易使用Mata爲你想要的。正如你所發現的那樣,對插件的支持基本上是微乎其微的,因爲很少有用戶程序員曾經寫過或很有興趣編寫任何插件。 – 2013-03-26 19:25:57

回答

0

我同意尼克。不幸的是,您的宏觀解決方案是唯一的答案,並且是我使用的。您只能使用SF_data函數直接訪問數據,作爲「矩陣」,這就是默認情況下獲得的所有內容,表格中沒有頭文件。我使用宏來保存所有的數據信息,並傳遞整個數據集,像你一樣讀取我感興趣的變量,甚至編寫翻譯器來保留格式設置,但尚未使用值標籤。