最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

軟件教程 | Stata17新特性之Pystata的配置與應用

2022-05-01 16:38 作者:歲月應無虞  | 我要投稿


引言:每一門程序語言都有自己的特點,或者說有其擅長的領域,對于同一項工作的不同部分,如果我們能夠合理搭配使用不同的程序語言或者軟件,就可以極大提高我們的工作效率。從計量統(tǒng)計分析的角度來說,我們可以將這一項工作分為數(shù)據(jù)處理統(tǒng)計分析兩個部分,在數(shù)據(jù)處理方面?Python?是一個不錯的工具,而在統(tǒng)計分析方面使用?Stata?顯然會更加方便,因此如果能夠找到一個在二者之間進行交互的方法,將極大提高我們的數(shù)據(jù)分析效率。基于以上考慮,從?Stata16?以來,Stata?與?Python?的交互功能就開始日益完善,現(xiàn)在我們可以使用 Stata17 中的?PyStata?來便捷地完成這一項工作。


目錄:

  • 1. PyStata 的基本介紹

    • 1.1 PyStata 簡介

    • 1.2 使用條件

    • 1.3 配置步驟

  • 2. PyStata 交互的實現(xiàn)方式

    • 2.1 使用魔法指令實現(xiàn)交互

    • 2.2 使用 `pystata.stata` 函數(shù)實現(xiàn)交互

    • 2.3 `Stata Function Interface(sfi)` 簡介

1. PyStata 的基本介紹

1.1 PyStata 簡介

PyStata 是 Stata17 中引入的一個新概念,它涵蓋了所有 Stata 和 Python 的交互方式。事實上從 Stata16 開始,我們就可以在 Stata 中調用 Python 代碼,并通過 Stata 函數(shù)接口( sfi 模塊)實現(xiàn) Python 與 Stata 核心功能的交互;但 Stata17 通過允許我們通過導入一個新的 Python 包(pystata)從一個獨立的 Python 環(huán)境中調用 Stata ,這大大擴展二者的交互功能,使我們可以在基于或支持 IPython 內核的環(huán)境中(例如:Jupyter Notebook 、Jupyter Lab 、Spyder 、PyCharm 、VScode 等)更加方便地調用 Stata 和 Mata。

1.2 使用條件

ⅰ. 安裝正版 Stata17 軟件(必須具備有效的許可證,否則無法調用)

ⅱ. 擁有基于或支持 IPython 內核的 Python 環(huán)境(建議使用 Jupyter Lab 或 VScode)

1.3 配置步驟

  • Step 01:在 Python 環(huán)境中安裝 stata_setup 模塊

  • Step 02:在 Python 環(huán)境中導入 stata_setup 模塊,并關聯(lián) Stata17

2. PyStata 交互的實現(xiàn)方式

2.1 使用魔法指令實現(xiàn)交互

2.1.1 cell magic 基本指令

注意:?cell magic 指令需要放在 cell 中的第一行才會生效

在一個 cell 的第一行輸入魔法指令?%%stata?,接著在該 cell 中就可以直接運行 Stata 語句了

2.1.2 line magic 基本指令

如果你只是想在某一行運行一個單獨的 Stata 語句,而在其他行運行 Python 語句,那么就可以使用line magic 指令,只需在某一行輸入魔法指令?%stata?,后面跟上想要運行的 Stata 語句即可。

2.1.3 cell magic 指令的參數(shù)功能

2.1.3.1?-eret、-ret?與?-sret(可實現(xiàn)數(shù)據(jù)傳遞)

%%stata?magic 命令提供了幾個參數(shù),可用于控制 Stata 命令的執(zhí)行以及在 Stata 和 Python 之間傳遞數(shù)據(jù)

例如:我們可以使用?-eret、-ret?或?-sret?參數(shù)將 Stata 運行結果中的?e()、r()?或?s()?結果傳遞到 Python 變量中;但需要注意的是,此命令默認保存和傳遞的是 Stata 中最后一條命令的運行結果。

該指令默認獲取和傳遞的數(shù)據(jù)將以字典列表的形式儲存,我們可以指定索引直接調用其中的任意一項數(shù)據(jù)。

運用實例:?獲取當前 Stata 所使用數(shù)據(jù)集中的所有變量名,然后通過stata.pdataframe_from_data()函數(shù)將 Stata 數(shù)據(jù)集輸出到 Python 中

2.1.3.2?-d(加載外部數(shù)據(jù)到 Stata )

我們也可以通過指定?%%stata?magic 指令的?-d?參數(shù),將?NumPy?數(shù)組或?pandas DataFrame?加載到 Stata 中,使其成為當前的工作數(shù)據(jù)集

注意:此數(shù)據(jù)集會替換當前 Stata 內存中的數(shù)據(jù)集,并在下一個cell中仍然可用

應用實例:?導入一個?df?數(shù)據(jù)集,并使用 Python 中的?df?數(shù)據(jù)集作為當前的 Stata 數(shù)據(jù)集。

2.1.3.3?-f(加載多個外部數(shù)據(jù)到 Stata 中的不同 Frame)

我們還可以通過指定?-f?參數(shù)一次將多個?NumPy?數(shù)組或?pandas DataFrame?加載到 Stata 中,這會將使得每個數(shù)組或?DataFrame?加載到 Stata 中的單獨Frame

注意:此數(shù)據(jù)集會替換當前 Stata 內存中的數(shù)據(jù)集,并在下一個cell中仍然可用

應用實例:

2.2 使用?pystata.stata?函數(shù)實現(xiàn)交互

2.2.1 單行 stata 指令運算

2.2.2 多行 stata 指令運算

2.2.3?pystata.stata?中的交互函數(shù)

2.2.3.1?get_return()、get_ereturn()和?get_sreturn()(參數(shù)傳遞)

可以使用?get_return()、get_ereturn()?和?get_sreturn()?函數(shù)將 Stata 的?r()、e()?和?s()?結果存儲為 Python 中的字典。

應用實例:

2.2.3.2?stata.pdataframe_from_data()(導出 Stata 當前數(shù)據(jù)集到 Python)

也可以使用?stata.pdataframe_from_data()?將 Stata 數(shù)據(jù)集作為?Numpy?數(shù)組或?pandas DataFrames?傳遞到 Python 中

應用實例:

2.2.3.3?stata.pdataframe_to_data()(加載外部數(shù)據(jù)到 Stata )

還可以使用?stata.pdataframe_to_data()?將數(shù)據(jù)從 Python 讀取到 Stata 中,使其成為當前數(shù)據(jù)集或將其加載到 Stata 中的特定?Frame?中

應用實例:

將上面的?pd.df?數(shù)據(jù)集?myauto?加載到 Stata 中,使其成為當前數(shù)據(jù)集,并列出前三個觀測值(此處參數(shù)?force=True?指的是在加載?Frame?之前清空 Stata 的當前內存)

2.2.3.4 其他?pystata.stata?函數(shù)介紹

run(cmd[, quietly, echo, inline]):運行一行或一組 Stata 命令。

nparray_to_data(arr[, prefix, force]):將 Numpy數(shù)組加載到 Stata 的內存中,使其成為當前數(shù)據(jù)集。

pdataframe_to_data(df[, force]):將 pandas DataFrame 加載到 Stata 的內存中,使其成為當前數(shù)據(jù)集。

nparray_from_data([var, obs, selectvar, …]):將當前 Stata 數(shù)據(jù)集中的值導出到 Numpy 數(shù)組中。

pdataframe_from_data([var, obs, selectvar, …]):將當前 Stata 數(shù)據(jù)集中的值導出到 pandas DataFrame 。

nparray_to_frame(arr, stfr[, prefix, force]):將 Numpy 數(shù)組加載到 Stata 中的指定 Frame 中。

pdataframe_to_frame(df, stfr[, force]):將pandas DataFrame加載到 Stata 中的指定Frame中。

nparray_from_frame(stfr[, var, obs, …]):將值從 Stata Frame 中導出到 Numpy 數(shù)組中。

pdataframe_from_frame(stfr[, var, obs, …]):將值從Stata Frame 中導出到 pandas DataFrame 。

get_return():檢索當前的 r() 結果并將其存儲在 Python 字典中。

get_ereturn():檢索當前的 e() 結果并將其存儲在 Python 字典中。

get_sreturn():檢索當前的 s() 結果并將其存儲在 Python 字典中。

官方文檔:?stata.com/python/pystat

2.3?Stata Function Interface(sfi)?簡介

2.3.1?sfi?接口函數(shù)簡介

sfi?模塊允許用戶將 Python 的功能與 Stata 的核心功能進行交互。該模塊可以交互使用,也可以在?do?文件和?ado?文件中使用,在模塊中,定義了?Class?用來訪問?Stata 特征當前數(shù)據(jù)集、Frame日期和時間、標量、矩陣值標簽、全局Mata矩陣、缺失值等。

Class Summary:

  • Characteristic (sfi.Characteristic)

  • Data (sfi.Data)

  • Datetime (sfi.Datetime)

  • Frame (sfi.Frame)

  • Macro (sfi.Macro)

  • Mata (sfi.Mata)

  • Matrix (sfi.Matrix)

  • Missing (sfi.Missing)

  • Platform (sfi.Platform)

  • Preference (sfi.Preference)

  • Scalar (sfi.Scalar)

  • SFIToolkit (sfi.SFIToolkit)

  • StrLConnector (sfi.StrLConnector)

  • ValueLabel (sfi.ValueLabel)

Exception Summary:

  • FrameError (sfi.FrameError)

  • SFIError (sfi.SFIError)

官方文檔:?stata.com/python/api17/

2.3.2 常用?sfi.Data?函數(shù)示例


軟件教程 | Stata17新特性之Pystata的配置與應用的評論 (共 條)

分享到微博請遵守國家法律
贵德县| 武穴市| 苍山县| 平顶山市| 玉溪市| 屏山县| 梁河县| 天津市| 米易县| 大关县| 中超| 沙湾县| 普洱| 康平县| 宁武县| 山西省| 虹口区| 万年县| 湟中县| 宁都县| 社旗县| 盐山县| 日土县| 万源市| 大港区| 旺苍县| 开封县| 馆陶县| 宣威市| 章丘市| 揭西县| 丰县| 如皋市| 丹寨县| 肥城市| 秦皇岛市| 资阳市| 镇远县| 阿拉尔市| 宝丰县| 丹阳市|