gpt4 book ai didi

foreach - 从 Stata 中的虚拟指标生成身份变量

转载 作者:行者123 更新时间:2023-12-02 01:32:02 26 4
gpt4 key购买 nike

我在 Stata 中处理某人的数据集,它使用虚拟变量来指示主题 ID,如下所示:

variable name        variable label
country_dummy1 Afghanistan
country_dummy2 Albania
country_dummy3 Algeria
...

这使得数据集很难处理,我正在尝试从虚拟对象中生成一个主题 ID 变量(国家),看起来像这样

country        country_dummy1  country_dummy2  country_dummy3
Afghanistan 1 0 0
Albania 0 1 0
Algeria 0 0 1

我写了以下命令:

gen country = "."
foreach x of varlist country_dummy1-country_dummy175 {
local z : variable label `x'
replace country = `z' if `x'==1
}

Stata 产生了以下错误信息:

Afghanistan not found
r(111);

我无法确定发生这种情况的原因。

最佳答案

你需要

gen country = ""
foreach x of varlist country_dummy1-country_dummy175 {
local z : variable label `x'
replace country = "`z'" if `x'==1
}

请注意,Stata 不会将 "." 视为缺失的字符串值。您的错误是,如果您没有指定您想要带有 "" 的文字字符串,那么 Stata 将查找具有您指定名称的变量。在您的情况下,Afghanistan 将是一个合法的变量名称,但您没有这样的变量:因此出现错误。名称中带有空格的国家也会因其他原因而出现问题,但该命令几乎总是会因同样的原因而失败。

这也应该有效:

gen country = ""
foreach x of varlist country_dummy1-country_dummy175 {
replace country = "`: variable label `x''" if `x'
}

您可以在 foreach 上轻拍 quietly 以避免来自 replace 的 175 条消息。

关于foreach - 从 Stata 中的虚拟指标生成身份变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33602226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com