在Stata的do-file中将命令分成几行

luc*_*cho 9 command-line break stata

我想keep在Stata 12中的do-file中运行该命令:

keep a1 a2 a3 a4 a5 b1 b2 b3 b4 b5 c1 c2 c3 c4
Run Code Online (Sandbox Code Playgroud)

我想要的是做以下事情:

keep {a1 a2 a3 a4 a5
     b1 b2 b3 b4 b5
     c1 c2 c3 c4}
Run Code Online (Sandbox Code Playgroud)

我知道{}括号不能解决问题,但我正在寻找执行它的命令.使用#delimiter ;也不起作用.

我想这样做,因为变量亚组有自己之间的关系(我打算上面的信号通过a,bc),我想有一个清晰的在我的代码.我永久地添加和删除变量.请注意,我不想使用该drop命令(在这种情况下,解决方案是微不足道的).

Rob*_*rer 19

有几种方法.一个是使用///.一个例子:

clear all
set more off

*----- example data -----

set obs 1

forvalues i = 1/25 {
    gen var`i' = `i'
}

describe

*----- what you want -----

keep var1 var2 ///
    var3-var7 ///
    var8 var11

describe
Run Code Online (Sandbox Code Playgroud)

#delimit 如果使用正确将会工作.一个例子:

<snip>

*----- what you want -----

#delimit ;

keep var1 var2 
    var3-var7 
    var8 var11 ;

#delimit cr

describe
Run Code Online (Sandbox Code Playgroud)

还有另一种方式.help delimit(你已经知道的)说:

有关详细信息,请参阅执行文件中的[U] 16.1.3长行.

该手动输入可直接指向相关信息.

我怀疑在这种情况下缺乏研究/努力.谷歌搜索(在"执行文件中使用stata + break line")可以很容易地将你带到那里.在尝试解决Stata中的问题时,我不建议这是您的第一个策略.相反,从Stata资源开始:我建议阅读

[U] 3学习和使用Stata的资源

[U] 4 Stata的帮助和搜索工具.