重命名具有非法字符 Stata 的变量
Rename variables with illegal character Stata
我有很多变量,它们的名称以 I:
开头,后跟数字 n(例如 I:2390
)。这些是指标变量,观察值为 1 n。我从其他软件 (Oxmetrics) 导入了这个数据库,所以它们不是在 Stata 中创建的。根据 Stata 手册,变量名只允许字母、数字和 _
。因此,Stata 不允许名称中包含 :
字符。因此,我无法对它们进行 运行 回归(输出为 I ambiguous abbreviation r(111);
)。
我正在尝试将它们全部重命名,但到目前为止没有任何效果,可能是因为名称无效。例如,我试过:
rename I:2390 OUT2390
rename I# OUT#
replace I:2390 = subinstr(I:2390, "I:", "OUT", .)
输出与之前相同:I ambiguous abbreviation r(111);
这是 describe
的输出,与所讨论的特定变量相关:
I:7 double
I:32 double
I:41 double
I:77 double
I:173 double
I:221 double
I:264 double
I:297 double
I:977 double
I:980 double
I:1026 double
I:1232 double
I:1282 double
I:1288 double
I:1347 double
I:1429 double
I:1455 double
I:1508 double
I:1536 double
I:1709 double
I:1774 double
I:1805 double
I:1836 double
I:1851 double
I:1873 double
I:1918 double
I:1967 double
I:1980 double
I:2016 double
I:2020 double
I:2108 double
I:2109+I:2108 double
I:2128 double
I:2164 double
I:2173 double
I:2256 double
I:2286 double
I:2332 double
I:2345 double
I:3109+I:3108 double
I:3151 double
I:3211 double
I:3250 double
I:3582 double
I:3596 double
I:3604 double
I:3636 double
I:3656 double
I:3716 double
I:3718 double
I:3760 double
I:4139 double
I:4164 double
I:4172 double
I:4230 double
I:4257 double
I:4263 double
I:4282 double
I:4288 double
I:4316 double
I:4317-I:4316 double
I:4346 double
I:4358 double
I:4445 double
I:4644 double
I:4645+I:4644 double
I:4657 double
I:4679 double
I:4705 double
I:4720 double
I:4866 double
I:4899 double
I:4923 double
I:5329 double
I:5423 double
I:5717 double
I:5731 double
I:5776 double
I:5960 double
I:6103 double
I:6117 double
I:6130 double
I:6178 double
I:6182 double
I:6341 double
I:6424 double
I:6435 double
I:6441 double
I:6470 double
I:6555 double
I:6567 double
I:6668 double
I:6695 double
I:6878 double
I:7341 double
I:7349 double
I:7370 double
I:7374 double
I:7419 double
I:7449 double
I:7555 double
I:7574 double
I:7719 double
I:7723 double
I:7729 double
I:7746 double
有没有办法在Stata中解决这个问题,还是需要使用其他软件?
我无法制作变量名包含冒号的示例数据。
尝试:
导出为 csv
outsheet using EXPORTED_FILE.csv
在文本编辑器中修改变量名
- 导入回 Stata。
之前的解决方案(导出为 .csv)的问题是您可能会丢失变量的标签。一种可能的解决方案是使用以下代码用下划线替换变量名称中的所有非法字符:
foreach varname of varlist * {
local i = `i' + 1
if ( "`varname'" != ustrtoname("`varname'") ) {
mata : st_varrename(`i', ustrtoname("`varname'") )
}
}
我有很多变量,它们的名称以 I:
开头,后跟数字 n(例如 I:2390
)。这些是指标变量,观察值为 1 n。我从其他软件 (Oxmetrics) 导入了这个数据库,所以它们不是在 Stata 中创建的。根据 Stata 手册,变量名只允许字母、数字和 _
。因此,Stata 不允许名称中包含 :
字符。因此,我无法对它们进行 运行 回归(输出为 I ambiguous abbreviation r(111);
)。
我正在尝试将它们全部重命名,但到目前为止没有任何效果,可能是因为名称无效。例如,我试过:
rename I:2390 OUT2390
rename I# OUT#
replace I:2390 = subinstr(I:2390, "I:", "OUT", .)
输出与之前相同:I ambiguous abbreviation r(111);
这是 describe
的输出,与所讨论的特定变量相关:
I:7 double
I:32 double
I:41 double
I:77 double
I:173 double
I:221 double
I:264 double
I:297 double
I:977 double
I:980 double
I:1026 double
I:1232 double
I:1282 double
I:1288 double
I:1347 double
I:1429 double
I:1455 double
I:1508 double
I:1536 double
I:1709 double
I:1774 double
I:1805 double
I:1836 double
I:1851 double
I:1873 double
I:1918 double
I:1967 double
I:1980 double
I:2016 double
I:2020 double
I:2108 double
I:2109+I:2108 double
I:2128 double
I:2164 double
I:2173 double
I:2256 double
I:2286 double
I:2332 double
I:2345 double
I:3109+I:3108 double
I:3151 double
I:3211 double
I:3250 double
I:3582 double
I:3596 double
I:3604 double
I:3636 double
I:3656 double
I:3716 double
I:3718 double
I:3760 double
I:4139 double
I:4164 double
I:4172 double
I:4230 double
I:4257 double
I:4263 double
I:4282 double
I:4288 double
I:4316 double
I:4317-I:4316 double
I:4346 double
I:4358 double
I:4445 double
I:4644 double
I:4645+I:4644 double
I:4657 double
I:4679 double
I:4705 double
I:4720 double
I:4866 double
I:4899 double
I:4923 double
I:5329 double
I:5423 double
I:5717 double
I:5731 double
I:5776 double
I:5960 double
I:6103 double
I:6117 double
I:6130 double
I:6178 double
I:6182 double
I:6341 double
I:6424 double
I:6435 double
I:6441 double
I:6470 double
I:6555 double
I:6567 double
I:6668 double
I:6695 double
I:6878 double
I:7341 double
I:7349 double
I:7370 double
I:7374 double
I:7419 double
I:7449 double
I:7555 double
I:7574 double
I:7719 double
I:7723 double
I:7729 double
I:7746 double
有没有办法在Stata中解决这个问题,还是需要使用其他软件?
我无法制作变量名包含冒号的示例数据。 尝试:
导出为 csv
outsheet using EXPORTED_FILE.csv
在文本编辑器中修改变量名
- 导入回 Stata。
之前的解决方案(导出为 .csv)的问题是您可能会丢失变量的标签。一种可能的解决方案是使用以下代码用下划线替换变量名称中的所有非法字符:
foreach varname of varlist * {
local i = `i' + 1
if ( "`varname'" != ustrtoname("`varname'") ) {
mata : st_varrename(`i', ustrtoname("`varname'") )
}
}