有没有办法获取变量类型?
Is there a way to get the variable type?
我想在 Stata 中提取分类变量,但似乎我做的不对。有线索吗?
* Pull out variables with value labels
sysuse auto
label dir
local catvars = r(names)
foreach var of varlist _all{
if `var' in `catvars'{
di "`var'"
}
}
如果分类变量的标准是它有值标签,那么ds
是最简单的工具:
. sysuse auto, clear
(1978 automobile data)
. ds, has(vallabel)
foreign
ds
returns r(varlist)
.
中的此类变量列表(这里只有一个)
ds
是官方命令。刚刚使用的特定语法,选项 has()
,是我在 community-contributed 命令中添加的,后来折叠回随 Stata 本身分发的内容(这就是“官方”在这里的意思)。
来自 Stata Journal 的 findname
具有相同的功能,甚至更多。它是我写的,作为 ds
的扩展。在某些情况下。至于这个问题,语法不同,代表我对什么是干净的二次思考,但用户自然可能不同意。
. findname, vallabel
foreign
标题中的一般问题也可以回答。 help macro
是各种 low-level 工具文档的门户,这些工具本质上强调了 ds
和 findname
为方便起见所做的大部分工作。 findname
现在还使用了一些 Stata 本身不直接匹配的 Mata 功能。 findname
的额外选项之一是 local()
将 findname
的结果直接放入本地宏; ds
.
中没有这样的选项
我想在 Stata 中提取分类变量,但似乎我做的不对。有线索吗?
* Pull out variables with value labels
sysuse auto
label dir
local catvars = r(names)
foreach var of varlist _all{
if `var' in `catvars'{
di "`var'"
}
}
如果分类变量的标准是它有值标签,那么ds
是最简单的工具:
. sysuse auto, clear
(1978 automobile data)
. ds, has(vallabel)
foreign
ds
returns r(varlist)
.
ds
是官方命令。刚刚使用的特定语法,选项 has()
,是我在 community-contributed 命令中添加的,后来折叠回随 Stata 本身分发的内容(这就是“官方”在这里的意思)。
findname
具有相同的功能,甚至更多。它是我写的,作为 ds
的扩展。在某些情况下。至于这个问题,语法不同,代表我对什么是干净的二次思考,但用户自然可能不同意。
. findname, vallabel
foreign
标题中的一般问题也可以回答。 help macro
是各种 low-level 工具文档的门户,这些工具本质上强调了 ds
和 findname
为方便起见所做的大部分工作。 findname
现在还使用了一些 Stata 本身不直接匹配的 Mata 功能。 findname
的额外选项之一是 local()
将 findname
的结果直接放入本地宏; ds
.