有没有办法翻转 Stata 中的观察顺序?

Is there a way to flip the order of observations in Stata?

是否可以在 Stata 中创建一个反向计数变量(像命令 _n,只是向后编号观察)?或者翻转数据集的命令,以便最近日期的观察是第一个?我想制作一个散点图,y 轴为 AfD,x 轴为日期 (row_id)。然而,当我制作情节时,周数是倒序排列的。如何更改顺序?

这是代码:

generate row_id=_n
twoway scatter AfD row_id || lfit AfD row_id

这是数据集和图表:

您的日期变量是一个字符串变量,如果您对该变量进行排序,它不太可能得到您想要的结果。

您可以从您的字符串变量创建一个 Stata 内部表单日期变量:

gen date_num = daily(date, "MDY")
format date_num %td

这个新变量的值将代表自 1960 年 1 月 1 日以来的天数。

如果您在 x 轴上使用此日期变量创建散点图,默认情况下它将从最小值到最大值排序。要让它 运行 从最大值到最小值,您可以指定选项 xscale(reverse).

如果您仍想自己创建一个 id 变量,您可以选择以下选项之一(升序和降序):

sort date_num
gen id = _n

gsort -date_num
gen id = _n

对于您的问题,根据每日日期变量进行绘图 - 如果出于某种原因这是个好主意 - 使用 xscale(reverse) 可能就是您所需要的,@ 也对此进行了解释沃特

大体上是这样的

gen long newid = _N - _n + 1 
sort newid 

将反转数据集。