true
在Stata中是一个伟大的命令。它描述了数据内容,但也简单地标识了唯一值
codebook
mpg的唯一值的数量是21.查看命令的帮助,似乎无法存储此值。我错了吗?
我知道在Stata中计算number of unique values的其他方法,但将此功能添加到sysuse auto, clear
codebook mpg, compact
命令会非常方便。
答案 0 :(得分:3)
您可以轻松编写codebook
的包装器,该包装器使用来自SSC的Nick distinct
命令将您想要的信息存储为标量。
根据我的经验,这种包装方法已被证明比要求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 :(得分:1)
ssc install egenmore
egen unique_values=nvals(mpg)
答案 2 :(得分:1)
“unique”包提供了一个方便的替代方案。这是一个简单的例子:
* Install the unique package
ssc inst unique
* Load toy dataset
sysuse auto, clear
* Get a quick report of unique (and total) values for a variable
unique mpg
* The result will be available as r(unique)
return list