我是靠谱客的博主 风中小海豚,这篇文章主要介绍python和stata_从Python运行Stata do文件,现在分享给大家,希望可以做个参考。

我认为@ user229552指向正确的方向.可以使用Python的子进程模块.下面是一个适用于Linux OS的示例.

假设您有一个名为pydo.py的Python文件,其中包含以下内容:

import subprocess

## Do some processing in Python

## Set do-file information

dofile = "/home/roberto/Desktop/pyexample3.do"

cmd = ["stata", "do", dofile, "mpg", "weight", "foreign"]

## Run do-file

subprocess.call(cmd)

和一个名为pyexample3.do的Stata文件,具有以下内容:

clear all

set more off

local y `1'

local x1 `2'

local x2 `3'

display `"first parameter: `y'"'

display `"second parameter: `x1'"'

display `"third parameter: `x2'"'

sysuse auto

regress `y' `x1' `x2'

exit, STATA clear

然后在终端窗口中执行pydo.py按预期工作.

您还可以定义Python函数并使用它:

## Define a Python function to launch a do-file

def dostata(dofile, *params):

## Launch a do-file, given the fullpath to the do-file

## and a list of parameters.

import subprocess

cmd = ["stata", "do", dofile]

for param in params:

cmd.append(param)

return subprocess.call(cmd)

## Do some processing in Python

## Run a do-file

dostata("/home/roberto/Desktop/pyexample3.do", "mpg", "weight", "foreign")

来自终端的完整呼叫,结果如下:

roberto@roberto-mint ~/Desktop

$python pydo.py

___ ____ ____ ____ ____ (R)

/__ / ____/ / ____/

___/ / /___/ / /___/ 12.1 Copyright 1985-2011 StataCorp LP

Statistics/Data Analysis StataCorp

4905 Lakeway Drive

College Station, Texas 77845 USA

800-STATA-PC http://www.stata.com

979-696-4600 stata@stata.com

979-696-4601 (fax)

Notes:

1. Command line editing enabled

. do /home/roberto/Desktop/pyexample3.do mpg weight foreign

. clear all

. set more off

.

. local y `1'

. local x1 `2'

. local x2 `3'

.

. display `"first parameter: `y'"'

first parameter: mpg

. display `"second parameter: `x1'"'

second parameter: weight

. display `"third parameter: `x2'"'

third parameter: foreign

.

. sysuse auto

(1978 Automobile Data)

. regress `y' `x1' `x2'

Source | SS df MS Number of obs = 74

-------------+------------------------------ F( 2, 71) = 69.75

Model | 1619.2877 2 809.643849 Prob > F = 0.0000

Residual | 824.171761 71 11.608053 R-squared = 0.6627

-------------+------------------------------ Adj R-squared = 0.6532

Total | 2443.45946 73 33.4720474 Root MSE = 3.4071

------------------------------------------------------------------------------

mpg | Coef. Std. Err. t P>|t| [95% Conf. Interval]

-------------+----------------------------------------------------------------

weight | -.0065879 .0006371 -10.34 0.000 -.0078583 -.0053175

foreign | -1.650029 1.075994 -1.53 0.130 -3.7955 .4954422

_cons | 41.6797 2.165547 19.25 0.000 37.36172 45.99768

------------------------------------------------------------------------------

.

. exit, STATA clear

资料来源:

可以在以下位置找到使用Python和Stata的不同路线

最后

以上就是风中小海豚最近收集整理的关于python和stata_从Python运行Stata do文件的全部内容,更多相关python和stata_从Python运行Stata内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部