我想要rename
以intensity
开头的变量名。我收到带有以下代码的无效语法r(198)
错误。
#delimit;
foreach VAR of varlist intensity* {;
local NEW = subinstr("`VAR'", "intensity", "int");
rename `VAR' `NEW';
};
答案 0 :(得分:2)
您在此处使用的定界符;
不会引起误解,因此我将忽略它。
使用subinstr()
时出错,它必须有四个参数,第四个是要进行替换的数量。参见help subinstr()
。
这可行(请注意,请使用一个最小的完整可验证示例):
clear
set obs 1
generate intensity1 = 1
generate intensity2 = 2
foreach VAR of varlist intensity* {
local NEW = subinstr("`VAR'", "intensity", "int", 1)
rename `VAR' `NEW'
}
ds
但是完全不需要循环。首先,让我们向后翻转名称,然后说明如何直接更改名称:
rename int* intensity*
rename intensity* int*
有关更多信息,请参见help rename groups
。