统计Stata中的唯一值

over140 阅读:335 2025-06-02 22:19:02 评论:0

codebook在 Stata 中是一个很棒的命令。它描述了数据内容,但也简单地标识了唯一值

sysuse auto, clear 
codebook mpg, compact 

mpg 的唯一值数为 21。查看命令的帮助,似乎无法存储此值。我错了吗?

我知道计算 number of unique values 的其他方法在 Stata 中,但将此功能添加到 codebook 中会非常方便命令。

请您参考如下方法:

您可以轻松地为 codebook 编写包装器使用尼克的 distinct来自 SSC 的命令将您想要的信息存储为标量。

根据我的经验,这种包装方法已被证明比要求 StataCorp 的好人在他们不参与的互联网论坛上更改他们的命令要有效得多。

下面是一个例子:

* (1) You can stick this into a file called mycodebook.ado in 
* /ado/personal (use adopath to see exact location) 
capture program drop mycodebook 
program mycodebook, rclass 
syntax [varlist] [if] [in][, *] 
codebook `varlist' `if' `in', `options' 
capture ssc install distinct 
foreach var of varlist `varlist' { 
    qui distinct `var' `if' `in' 
    return scalar nv_`var' = r(ndistinct) 
} 
end 
 
* (2) example with mycodebook 
sysuse auto, clear 
mycodebook price mpg rep78 if foreign==0, compact 
return list 

最后一部分将为您提供:
. mycodebook price mpg rep78 if foreign==0, compact 
 
Variable   Obs Unique      Mean   Min    Max  Label 
---------------------------------------------------------------------------------- 
price       52     52  6072.423  3291  15906  Price 
mpg         52     17  19.82692    12     34  Mileage (mpg) 
rep78       48      5  3.020833     1      5  Repair Record 1978 
---------------------------------------------------------------------------------- 
 
. return list 
 
scalars: 
           r(nv_rep78) =  5 
             r(nv_mpg) =  17 
           r(nv_price) =  52 

然后你可以做这样的事情(或者你想做的任何事情):
gen x=r(nv_rep78) 


标签:程序员
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号