2010-11-12 268 views

回答

12

不是直接的,即沒有我知道的包實現了一個橋。

你總是可以使用system()調用外部程序,但這既不優雅也不高效。也就是說,你可以在R中準備數據,寫出來,打電話給Stata,然後讀取結果;見help(system)

+1

這可能是最好的解決方案。 Stata有一套命令行工具,允許您從shell運行.do/.ado文件(windows:http://www.stata.com/support/faqs/win/batch.html或unix/linux: http://fmwww.bc.edu/Gstat/docs/stataunixlinux.html#batch) – 2010-12-02 03:52:36

+2

GitHub上現在有一個[RStata](https://github.com/lbraglia/RStata)包,它試圖創建一個橋R和Stata之間。 – Thomas 2014-11-10 20:42:50

+0

@Thomas RStata值得成爲自己的答案。 – fgregg 2015-05-14 17:03:14

3

真正的問題是,Stata沒有可以傳遞參數的交互式解釋器。

Dirk是對的;你可以繼續寫數據到一個通用的格式 (如果規模很大,速度是一個問題,固定寬度是安全的),但你也可以在整個過程中使用.dta,使用R中的read.dta和本地閱讀Stata。

另外,在R中你可以調用system(),你可以傳遞一個do文件或一個包含一堆Stata命令的字符串。因此,一般來說,試圖使用Stata來完成這個或那個任務可能會也可能不值得,尤其是如果一個R等價物靠近的話。