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

How to replace multiple variables in one line using Stata

我需要在数据集中进行一些手动更正,我想避免重复 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"

任何建议都会有所帮助。

你是对的;该代码会更简洁。它只是不合法的 Stata,replace 的语法图中没有任何其他建议。

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

查找观察编号并使用 in 而不是 if 也会缩短代码,但不太清晰并且对 sort 顺序的更改非常脆弱。