sort — 数据排序
2019-04-26 本文已影响0人
松柏林stata
Description
sort 根据 varlist 中变量的值将当前数据的观察结果排列为升序。varlist 中的变量数量没有限制。缺失值比任何其他数字都要大,因此将它们放在最后。.<.a <.b <···<.z。 但是,对字符串变量进行排序时,首先放置空字符串,将大写字母放在小写字母之前。
除非指定范围(in range),否则数据集将标记为按 varlist 排序。 如果指定范围,则仅重新排列那些观察值,未指定范围的观察值保持位置不变。
Quick start
按 v1 的升序值对内存中的数据集进行排序
sort v1
如上所述,并且通过 v2 的升序值和 v2 中的v3在v1内排序
sort v1 v2 v3
如上所述,并以相同的预先顺序保持与v1,v2和v3的相同值的观察
sort v1 v2 v3, stable
Syntax
sort varlist [in] [, stable]
Option
stable: 指定具有相同 varlist 变量值的观察值在它们之前的排序数据中保持相同的相对顺序。 例如,请看以下数据:
在没有 stable option 的情况下键入 sort x 会产生以下六个排序之一:
图片.png
没有 stable option ,具有相等 varlist 值的观测值的顺序是随机的。使用 sort x,stable ,您将始终获得第一个排序,而不是其他五个排序。
如果你的意图是首先在 x 上排序,然后在b的绑定值(上面的第四个排序)中排序,你应该输入sort x b而不是sort x,stable。
如果您的意图是让观察结果先在 x 上排序,然后在 x的结果内在 b上排序(上面的第四个排序),您应该键入 sort x b 而不是sort x,stable。
stable 很少使用,并且在指定时会导致排序执行得更慢。
Remarks and examples
处理数据时,排序数据是很常见说我工作。 有时,在Stata执行某项任务之前,数据必须按特定顺序排列。 例如,如果要使用
by varlist:prefix,数据必须按 varlist的顺序排序。 您可以使用 sort 命令来满足此要求。
Example 1
排序数据也可以提供信息。假设我们有汽车数据,每辆汽车的制造和里程评级(称为 make 和 mpg )都包含在数据中的变量中。 我们想在我们的数据中列出里程数最低的五辆汽车:
use http://www.stata-press.com/data/r15/auto
keep make mpg weight
sort mpg, stable
list make mpg in 1/5
图片.png
Example 2: Tracking the sort order
Stata会跟踪您的数据顺序。例如,我们在 mpg 上对上述数据进行了排序。当我们要求Stata描述内存中的数据时,它告诉我们数据集是如何排序的:
describe
图片.png
Stata 会跟踪排序顺序的变化。 如果我们要对 mpg 变量进行更改,Stata会知道数据不再排序。 请记住,我们的数据中的第一个观察结果mpg等于12,第二个也是12。 让我们改变第一个观察值:
replace mpg=13 in 1
describe
图片.png
进行更改后,Stata 显示我们的数据集“按以下方式排序:“Sorted by:” 。 让我们把数据集放回原样:
After making the change, Stata indicates that our dataset is “Sorted by:” nothing. Let’s put the dataset back as it was: