Yan*_*ong 0 stata stata-macros
我对distinctStata中的命令有一个简单的问题.
当使用by前缀时,它是否可以返回一维矩阵r(N)?
例如:
sysuse auto,clear
bysort foreign: distinct rep78
Run Code Online (Sandbox Code Playgroud)
我可以存储[2,1]矩阵,每行代表不同值的数量rep78吗?
该手册似乎表明它只存储最后一个值的不同值的数量.
您可以轻松地为此创建自己的包装器:
sysuse auto,clear
sort foreign
levelsof foreign, local(foreign_levels)
local number_of_foreign_levels : word count `foreign_levels'
matrix distinct_mat = J(`number_of_foreign_levels', 1, 0)
forvalues i = 1 / `number_of_foreign_levels' {
quietly distinct rep78 if foreign == `i' - 1
matrix distinct_mat[`i', 1] = r(ndistinct)
}
matrix list distinct_mat
distinct_mat[2,1]
c1
r1 5
r2 3
Run Code Online (Sandbox Code Playgroud)
请注意,不同的观察数量存储在r(ndistinct),而不是r(N).