从长字符串创建宏

问题描述 投票:1回答:1

考虑在本地宏ABC中保存的以下字符串:

A1 A2 B3 C2 B5 A3 C9 C4 B1 A7

如何为每组元素创建单独的本地宏(非变量)?

我还希望按字母顺序对新的本地宏进行排序。

例如:

A = A1 A2 A3 A7
B = B1 B3 B5 
C = C2 C4 C9
stata stata-macros
1个回答
3
投票

以下适用于我:

local ABC A1 A2 B3 C2 B5 A3 C9 C4 B1 A7
local ABC : list sort ABC

tokenize `ABC'

foreach l in A B C {
    forvalues i = 1 / `: word count `ABC'' {
        if strmatch("``i''", "`l'*") local `l' ``l'' ``i''
    }
}

. display "`A'"
A1 A2 A3 A7

. display "`B'"
B1 B3 B5

. display "`C'"
C2 C4 C9
© www.soinside.com 2019 - 2024. All rights reserved.