Stata/Python 集成第二部分:在 Stata 中使用 Python 的三种方法

 

 

在上篇文章中,我向您展示了如何安装 Python 并设置 Stata 以使用 Python。现在,我们已经准备好使用 Python 了。在 Stata 中有三种使用 Python 的方式:交互式调用 Python、在 do-files 和 ado-files 中包含 Python 代码,以及执行 Python 脚本文件。每种方式在不同情况下都很有用,所以我将演示所有三种方式。示例故意保持简单且有些幼稚。我将在未来的文章中向您展示一些更复杂的示例,但在这篇文章中,我想保持简单。

交互式调用 Python

您可以在 Stata 的 Command 窗口中输入 python 来在 Stata 内部交互式使用 Python。

. python
----------------------------------------------- python (type end to exit) ------

Stata 会提醒您完成后可以输入 end 来退出 Python。现在您可以在 Command 窗口中输入 Python 代码。例如,您可以指示 Python 打印一个短语。

>>> print("Hello Stata, I am Python")
Hello Stata, I am Python

您还可以将 Python 用作交互式计算器。

>>> 2*3
6
>>> 3*4
12

然后,您可以输入 end 来退出 Python 并返回 Stata。

>>> end
--------------------------------------------------------------------------------

您也可以简单地输入 python: 后跟一个 Python 语句。Python 将运行该语句,然后返回 Stata。这是一个简单的示例:

. python: print("Hello Stata, I am Python")
Hello Stata, I am Python

您还可以使用此语法进行快速计算:

. python: 2*3
6

在 do-files 和 ado-files 中使用 Python

您可以在 do-files 和 ado-files 中使用 python: 后跟一个简单命令,例如

. python: print("Hello Stata, I am Python")

就像可以交互式使用一样。

您还可以使用 Python 代码块在 do-files 和 ado-files 中运行多个 Python 语句。Python 代码块以 python 开始,以 end 结束,正如我们在上面的交互式示例中所看到的那样。下面的示例 1 是一个 do-file,它以 Stata display 命令开始,使用 python 开始 Python 代码块,执行两个 Python print() 语句,使用 end 结束 Python 代码块,并以 Stata display 命令结束。

示例 1:hello.do

display "Hello Python, I am Stata."
python
print("Hello Stata.")
print("I am Python.")
end
display "Nice to meet you Python!"

当我们输入 do hello 时,很容易在输出中看到 Python 代码块,因为代码块以虚线行开始和结束。

. display "Hello Python, I am Stata."
Hello Python, I am Stata.

. python
----------------------------------------------- python (type end to exit) ------
>>> print("Hello Stata.")
Hello Stata.
>>> print("I am Python.")
I am Python.
>>> end
--------------------------------------------------------------------------------

. display "Nice to meet you Python!"
Nice to meet you Python!

关于代码块有两件重要的事情需要了解。首先,您可以使用 python 或 python: 开始代码块。两者都会运行代码块,但如果 Python 在代码块内遇到错误,它们的行为会有所不同。如果您使用 python 开始代码块且 Python 遇到错误,Python 将继续执行代码块中的剩余代码。如果您使用 python: 开始代码块且 Python 遇到错误,Python 将在不执行剩余 Python 代码的情况下将控制权返回给 Stata。在这两种情况下,都会打印堆栈跟踪并发出错误代码。

其次,Python 代码块内的缩进是功能性的而非美学的。例如,您可能想编写一个 Python 代码块并对块内的代码进行缩进,如示例 2 所示。

示例 2:hello2.do

display "Hello Python, I am Stata."
python:
    print("Hello Stata.")
    print("I am Python.")
end
display "Nice to meet you Python!"

但是 Python 使用缩进来"确定语句的分组"(Python 文档 2.1.7)。当我们运行示例 2 时,Python 会返回一个缩进错误。

. display "Hello Python, I am Stata."
Hello Python, I am Stata.

. python:
----------------------------------------------- python (type end to exit) ------
>>>     print("Hello Stata.")
  File "", line 1
    print("Hello Stata.")
    ^
IndentationError: unexpected indent
(1 line skipped)
--------------------------------------------------------------------------------
r(7102);

您可以在 Python 文档中阅读有关缩进使用的更多信息。

运行 Python 脚本

您还可以在 Stata 中运行 Python 脚本。Python 脚本只是保存在扩展名为 .py 的文件中的一组 Python 语句。示例 3 显示了名为 hello.py 的 Python 脚本的内容。

示例 3:hello.py

print("Hello Stata.")
print("I am Python.")

我们可以通过输入 python script 后跟我们要运行的脚本来运行 Python 脚本。

. python script hello.py
Hello Stata.
I am Python.

这种在 Stata 中运行 Python 的方法在遇到由其他人编写的 Python 脚本时很有用。它对于保存一组 Python 函数也很有用。我将在未来的博客文章中向您展示如何将参数从 Stata 传递给 Python 脚本。

您可以在 Command 窗口、do-files 或 ado-files 中使用 python script。

结论

在这篇博客文章中,我向您展示了在 Stata 中运行 Python 的三种不同方式。每种方式在不同情况下都很有用,我将在未来的博客文章中演示它们的用途。下次,我将向您展示如何下载和安装 Python 软件包。

 

 

 

 

 


 

在线留言

尊敬的客户朋友,如您有任何意见建议,请通过下表反馈给我们,我们会尽快与您联系。

 

 

 

 

联系我们

 

微信公众号

咨询微信

企业店铺

400-621-1085

(节假日期间办公室座机如无人接听,请选择其他联系方式,感谢理解!祝您节日快乐!)

 

联系我们 快速链接 相关产品 上海卡贝信息技术有限公司

©2025  上海卡贝信息技术有限公司

产品中心

下载中心

站点地图

隐私政策

 

销售QQ咨询

产品QQ咨询

淘宝店铺

IBM SPSS Statistics 20 -统计分析软件
IBM SPSS Statistics 31 -统计分析软件

 

综述

功能概述

Stata/MP

最新更新:19版

版本选择

 

EQS

GraphPad Prism

LISREL

SmarPLS

Statgraphics

HLM

IRTPRO

flexMIRT

IBM SPSS Statistics

SAS

NCSS

PASS

SigmaPlot

nQuery

Analyse-it

MedCalc

AMOS

GAUSS

SYSTAT

EViews