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 变量值的观察值在它们之前的排序数据中保持相同的相对顺序。 例如,请看以下数据:

图片.png
在没有 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

排序数据也可以提供信息。假设我们有汽车数据,每辆汽车的制造和里程评级(称为 makempg )都包含在数据中的变量中。 我们想在我们的数据中列出里程数最低的五辆汽车:

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:
上一篇 下一篇

猜你喜欢

热点阅读