Stata连享会 主页 || 视频 || 推文 || 知乎 || Bilibili 站
温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。
New!
lianxh
命令发布了:
随时搜索推文、Stata 资源。安装:
. ssc install lianxh
详情参见帮助文件 (有惊喜):
. help lianxh
连享会新命令:cnssc
,ihelp
,rdbalance
,gitee
,installpkg
⛳ Stata 系列推文:
作者:左祥太 (武汉纺织大学)
邮箱:Shutter_Z@outlook.com
目录
distinct
命令主要用于报告不同观测值的数量,例如,某个变量的观测值为 (1, 2, 2, 3, 3, 3, 4, 4, 4, 4),则 distinct
命令返回 4,即该变量仅存在 4 个不同的观测值。
*命令安装
cnssc install distinct, replace
*命令语法
distinct [varlist] [if] [in] [, missing abbrev(#) joint minimum(#) maximum(#)]
其中,
missing
:表示包括缺漏值,默认不包括;abbrev
:定义显示变量的最大字符,比如字符串 happiness 的长度是 9,利用 abbrev(5)
转换后,就会变为 hap~s;joint
:根据 varlist
中所有变量分析观测值差异;minimum
:表示可返回变量的最小不同观测值数;maximum
:表示可返回变量的最大不同观测值数。
接下来,以「auto.dta」数据为例进行演示:
. sysuse auto.dta, clear
. des
. distinct
| Observations
| total distinct
--------------+----------------------
make | 74 74
price | 74 74
mpg | 74 21
rep78 | 69 5
headroom | 74 8
trunk | 74 18
weight | 74 64
length | 74 47
turn | 74 18
displacement | 74 31
gear_ratio | 74 36
foreign | 74 2
可以看出,make 一共有 74 个观测,并且有 74 个不同的观测值。rep78 变量仅有 69 个观测,说明存在 5 个缺失值,并且该变量也恰好有 5 个不同的观测值。其余变量以此类推……
进一步,关于 distinct
命令选项的具体介绍如下:
. *max 与 min
. distinct, max(10)
| Observations
| total distinct
--------------+----------------------
rep78 | 69 5
headroom | 74 8
foreign | 74 2
max(10)
选项限定返回变量的不同观测值数小于等于 10。
. distinct, min(10)
| Observations
| total distinct
--------------+----------------------
make | 74 74
price | 74 74
mpg | 74 21
trunk | 74 18
weight | 74 64
length | 74 47
turn | 74 18
displacement | 74 31
gear_ratio | 74 36
min(10)
选项限定返回变量的不同观测值数大于等于 10。
. distinct rep78, missing
| Observations
| total distinct
-------+----------------------
rep78 | 74 6
missing
选项可以将缺失值包括在观测值统计范围内,通过对比可以发现,rep78 的不同观测值由之前的 5 变成了 6。
. distinct, joint
Observations
total distinct
69 69
joint
选项可以对所有变量观测值联合进行分析,可以发现,在不考虑缺失值的情况下,该数据集包括 69 个观测,且这个 69 个观测都不存在重复。
. distinct headroom, abbrev(6)
| Observations
| total distinct
--------+----------------------
head~m | 74 8
abbrev(6)
选项指定变量名的最大字符显示数为 6。
在 forvalues
循环当中,我们经常需要确定循环最大值的数字,这个时候就可以使用 distinct
命令来确定不同观测值的最大数量,以便我们进行分组循环。假设这样一个场景,我们需要对每家公司按照其所在行业进行分组求得某种盈余管理 DACC 的数值,但面对上千家上市公司,直接数数或许并不是一种明智的选择,这时便可以利用 distinct
命令。
/* 循环中的 distinct */
/* Notes:
year 表示对应年份
stock 表示公司股票代码
sic 表示公司行业代码
*/
egen egen sic_year = group(sic year), label lname(sic_year)
distinct sic
local n = r(ndistinct) // r(ndiatinct) 为 distinct 的返回组数
gen DACC = .
forvalues i = 1(1)`n'{
qui reg acc invA Dsale PPE if (sic_year==`i'), nocons
qui predict e if e(sample), res
qui replace DACC = e if e(sample)
drop e
}
· sysuse auto.dta, clear
. distinct
| Observations
| total distinct
--------------+----------------------
make | 74 74
price | 74 74
mpg | 74 21
rep78 | 69 5
headroom | 74 8
trunk | 74 18
weight | 74 64
length | 74 47
turn | 74 18
displacement | 74 31
gear_ratio | 74 36
foreign | 74 2
//不难发现,在 auto.dta 这一份数据当中仅有 rep78 这一变量当中存在缺漏
//所以仅需要如下操作即可去除缺漏值
. drop if rep78 == .
(5 observations deleted)
Note:产生如下推文列表的 Stata 命令为:
lianxh 循环 滚动 重复值 盈余管理, m
安装最新版lianxh
命令:
ssc install lianxh, replace
免费公开课
最新课程-直播课
专题 | 嘉宾 | 直播/回看视频 |
---|---|---|
⭐ 最新专题 | 文本分析、机器学习、效率专题、生存分析等 | |
研究设计 | 连玉君 | 我的特斯拉-实证研究设计,-幻灯片- |
面板模型 | 连玉君 | 动态面板模型,-幻灯片- |
面板模型 | 连玉君 | 直击面板数据模型 [免费公开课,2小时] |
⛳ 课程主页
⛳ 课程主页
关于我们
课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法
等
连享会小程序:扫一扫,看推文,看视频……
扫码加入连享会微信群,提问交流更方便
✏ 连享会-常见问题解答:
✨ https://gitee.com/lianxh/Course/wikis
New!
lianxh
命令发布了:
随时搜索连享会推文、Stata 资源,安装命令如下:
. ssc install lianxh
使用详情参见帮助文件 (有惊喜):
. help lianxh