假设一个变量名为var1,变量包含的值为"50kg 100g 25kg 300g",我们要提取其中数字,并将其存储在一个列表中,以便后续使用。
以下是实现的Stata代码示例:
* 构造样本数据
clear
input str20 var1
"50kg 100g 25kg 300g"
* 提取数字
gen double num = real(regexs(1)) if regexm(var1, "[0-9]+")
list var1 num
* 存储到列表中
quietly levelsof num, local(num_list)
display `num_list'
解释说明:
首先我们用“input”命令构造了一个样本数据变量var1。接下来,我们使用“regexm”函数来匹配变量var1中所有包含数字的部分。“regexs(1)”函数提取匹配到的第一个数字,并使用“real”函数将它转换为双精度型。最后,我们使用“levelsof”命令将提取到的数字存储在一个名为“num_list”的本地宏中,并用“display”函数来显示出来。
这样,我们就成功地提取了字符前的数字,并将其存储到一个列表中,以备后续使用。