其他
SFI:Stata与Python的数据交互手册(一)
本文作者:张学人
文字编辑:钱梦璇
技术总编:张 邯
Stata与Python的交互难题
什么是SFI
Macro: 宏的输出
sysuse auto,clear
reg mpg weight foreign
local StataClub "Data is power"
ereturn list
macros:
e(cmdline) : "regress mpg weight foreign"
e(title) : "Linear regression"
e(marginsok) : "XB default"
e(vce) : "ols"
e(depvar) : "mpg"
e(cmd) : "regress"
e(properties) : "b V"
e(predict) : "regres_p"
e(model) : "ols"
e(estat_cmd) : "regress_estat"
>>> #program1
>>> from sfi import Macro
>>> str1 = Macro.getGlobal('e(cmdline)')
>>> str2 = Macro.getLocal('StataClub')
>>> print(str1+"\n"+str2)
regress mpg weight foreign
Data is power
>>> end
Macro: 宏的导入
. python:
----------------------------------------------- python (type end to exit) ------------------------------------------
>>> from sfi import Macro
>>> Macro.setLocal("INFO","this is a info from python")
>>> Macro.setLocal("INFO2","24")
>>> Macro.setGlobal("e(GlobalINFO)","this is a globalinfo from python")
>>> end
--------------------------------------------------------------------------------------------------------------------
. disp "`INFO'"
this is a info from python
. disp `INFO2'
24.
. disp e(GlobalINFO)
this is a globalinfo from python
Scalar: 标量的输出
sysuse auto,clear
reg mpg weight foreign
ereturn list
scalars:
e(N) = 74
e(df_m) = 2
e(df_r) = 71
e(F) = 69.74846262000308
e(r2) = .6627029116028815
e(rmse) = 3.407059285651584
e(mss) = 1619.287698167387
e(rss) = 824.1717612920727
e(r2_a) = .6532015851691599
e(ll) = -194.1830643938065
e(ll_0) = -234.3943376482347
e(rank) = 3
. python:
----------------------------------------------- python (type end to exit) ------------------------------------------
>>> #program2
>>> from sfi import Scalar
>>> a = Scalar.getValue('e(r2_a)')
>>> print(a)
0.6532015851691599
>>> end
--------------------------------------------------------------------------------------------------------------------
Scalar: 标量的导入
. python:
----------------------------------------------- python (type end to exit) ------------------------------------------
>>> from sfi import Scalar
>>> Scalar.setValue('e(r2_a)', 3)
>>> Scalar.setValue('sca', 5)
>>> end
--------------------------------------------------------------------------------------------------------------------
. disp e(r2_a)
3
. disp sca
5
自科基金项目信息爬取
rename group批量修改变量名
小命令,大不同——insobs插入新值
新的一年,效率满满~(上)
关于我们
微信公众号“Stata and Python数据分析”分享实用的stata、python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。