在 Stata 的变量标签中的大写字母前插入 space
Insert space before capital letters in variable label in Stata
我有一个带有损坏变量标签的 Stata 数据集,因此标签 "Random Uniform Variable" 被压缩为 "RandomUniformVariable"。我可以通过用 space 和大写字母替换大写字母来恢复正确的变量标签。
我想以编程方式解决这个问题,此时主要是出于好奇。我有一个开始,但是扩展函数 : piece #1 of "string"
做的是 words,而不是 letters。有办法吗?
clear
set obs 2001
generate var = runiform()
label variable var "RandomUniformVariable"
local name : variable label var
local i : strlen local name
display "`i'"
forvalues j = 1/`i' {
display "`j'"
local l : piece `j' of "`name'", nobreak
display "`l'"
}
蛮力有效:
clear
set more off
local teststr "RandomUniformVariable"
forvalues i = 1/26 {
local letter : word `i' of `c(ALPHA)'
local teststr : subinstr local teststr "`letter'" " `letter'"
}
display trim("`teststr'")
我有一个带有损坏变量标签的 Stata 数据集,因此标签 "Random Uniform Variable" 被压缩为 "RandomUniformVariable"。我可以通过用 space 和大写字母替换大写字母来恢复正确的变量标签。
我想以编程方式解决这个问题,此时主要是出于好奇。我有一个开始,但是扩展函数 : piece #1 of "string"
做的是 words,而不是 letters。有办法吗?
clear
set obs 2001
generate var = runiform()
label variable var "RandomUniformVariable"
local name : variable label var
local i : strlen local name
display "`i'"
forvalues j = 1/`i' {
display "`j'"
local l : piece `j' of "`name'", nobreak
display "`l'"
}
蛮力有效:
clear
set more off
local teststr "RandomUniformVariable"
forvalues i = 1/26 {
local letter : word `i' of `c(ALPHA)'
local teststr : subinstr local teststr "`letter'" " `letter'"
}
display trim("`teststr'")