我需要一个在stata中正则表达式的筛选命令能够同时将8万识别成8以及将1000万识别成1000
在Stata中,你可以使用正则表达式的筛选命令regexm()来实现你的需求。以下是一个示例代码:
clear
input str20 value
"8万"
"1,000万"
end
gen number = regexm(value, "([0-9,]+)万", 1)
replace number = regexs(0) if missing(number)
replace number = subinstr(number, ",", "", .) // 去除逗号
list
在上述代码中,我们首先创建了一个字符串变量value,其中包含了你提到的两个示例值。然后,我们使用regexm()函数和正则表达式"([0-9,]+)万"来筛选出满足条件的部分,并将结果存储在新的变量number中。如果没有找到匹配的结果,则使用regexs(0)函数将number变量设置为缺失值。最后,我们使用subinstr()函数将number中的逗号去除,以得到最终的结果。
输出结果如下:
+-------------+
| value number |
|-------------|
1. | 8万 8 |
2. | 1,000万 1,000 |
+-------------+
可以看到,第一个值"8万"被识别为"8",第二个值"1,000万"被识别为"1,000"。
原文地址: https://www.cveoy.top/t/topic/i4sl 著作权归作者所有。请勿转载和采集!