gpt4 book ai didi

python - 如何在 Stata 中连接局部变量和字符串

转载 作者:行者123 更新时间:2023-12-05 01:35:00 24 4
gpt4 key购买 nike

我有一个非常大的 DO 文件,我需要控制代码是在 Linux 还是 Windows 中运行。

为此,我想我会在文件顶部添加这段代码:

// Set OS variable for filesystem/directory control: values are: {linux, win}
local os = "linux"

然后每当我必须选择正确的文件系统的目录输出时,我会:

if "`os'" == "linux" {
use "/mnt/DataResearch/DataStageData/CV_PATIENT_LABS.dta"
}
else {
use "\\mrts-400-netapp\DataResearch\DataStageData\CV_PATIENT_LABS.dta"
}

问题是代码中有很多usesavemerge 语句,其中包含硬编码目录,因此将这种类型的控件放入 DO 文件中不仅乏味,而且也不是最优雅的解决方案。

在 python 中,我会这样定义一个变量 dir_out:

if os == 'linux':
dir_out = '/mnt/DataResearch/DataStageData/'
elif os == 'win':
dir_out = '\\mrts-400-netapp\DataResearch\DataStageData\'
else:
pass

然后在整个 DO 文件中,只需将 dir_test 连接到文件名,例如:

use = dir_out + "CV_PATIENT_LABS.dta" 

但是,我一直都没有想出如何在 Stata-ease 中做到这一点。

一位同事建议使用内置的 Python 解释器来执行此操作,但我看不出这比散布大量 if-then-else 控制序列更好贯穿整个代码。

欢迎提出任何建议。

最佳答案

Stata 中的局部宏(不称为“局部变量”)可以与这样的字符串连接:

. local old "start here"

. local new "`old' and follow there"

. di "`new'"
start here and follow there

或者像这样:

. local new = "`old'" + " and follow there"

. di "`new'"
start here and follow there

参见 here for an introduction to local macros .

关于python - 如何在 Stata 中连接局部变量和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63321278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com