有没有办法翻转 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
将反转数据集。
是否可以在 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
将反转数据集。