如何使用Stata替换一行中的多个变量

时间:2016-03-20 13:11:35

标签: stata data-cleaning

我在数据集中有一些手动修正,我想避免重复if条件。例如,而不是

sysuse auto, clear
replace mpg=21 if make=="AMC Concord"
replace rep78=4 if make=="AMC Concord"
replace mpg=23 if make=="AMC Pacer"
replace rep78=4.5 if make=="AMC Pacer"

以下代码会更简约但不起作用

sysuse auto, clear
replace mpg=21 & rep78=4 if make=="AMC Concord"
replace mpg=23 & rep78=5 if make=="AMC Pacer"

任何建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

你是对的;那段代码会更简洁。它只是不合法的Stata,replace的语法图中没有任何内容。

我可以想象一些非常人为的方法,在使用if的同时用更少的行重写相同的代码,但在我看来,没有人会更有吸引力或更容易理解。

查看观察数并使用in而不是if也会缩短代码,但对sort顺序的更改不太清晰且高度脆弱。