wildcard - 来自变量名的通配符匹配集
问题描述
我有一组变量,比如varA
、varB
和varC
。
我怎样才能只遍历后缀A
,B
和C
?
我知道我可以得到所有匹配的变量,如下所示:
des var*
storage display value
variable name type format label variable label
-------------------------------------------------------------------------------------------------------------------------------------
varA float %9.0g
varB float %9.0g
varC float %9.0g
但是,有没有办法只提取匹配的组件并循环它?
理想的代码如下所示:
des var*
foreach postfix in `r(wildcardmatches)' {
display "`postfix'"
}
如果该集合r(wildcardmatches)
存在。
解决方案
* sandbox
clear
set obs 1
foreach v in varA varB varC {
gen `v' = 42
}
* core idea and verification
unab wanted : var*
local wanted : subinstr local wanted "var" "", all
display "`wanted'"
A B C
推荐阅读
- vuejs2 - 带有 Vue 选项卡的组件标签中的动态道具
- python - 如何将 for 循环更改为列表理解?
- mongodb - 如何根据某些条件获取文档的最大值
- python-3.x - pd.dataframe:用空白单元格格式化总计行的问题
- azure - Azure Cosmos DB:如何为特定容器创建只读副本
- python - 如何从新编译的数据框中只选择“男性”属性?
- excel - 应用程序 ScreenUpdating False 不起作用,屏幕仍显示移动
- html - 使页面的一部分可滚动,同时保持小节的高度
- python - 使用 Python Selenium 在内存中下载文件,而不是在磁盘中
- html - 根据容器的宽度和高度缩放字体大小