1

ベンダー名から特定の部分文字列を削除しようとしています。だから私はマクロを入れてこれをします:

 local item "BANKOFAMERICA"  " INC" " INCORPORATED" " SYS " " SYSTEMS" " PVT" " PRIVATE"    " LIMITED" " LTD" " LLC" " CORP" "LIMITED LIABILITY" "CORPORATION" " CORP " " COMPANY" " CO " " TECHNOLOGY" " TECH " " GLOBAL"
foreach v in `item' {
replace vendor = subinstr(vendor,"`v'","",.)
}

ただし、これにより、引用符が少なすぎるというエラーが発生します。「v」の前後に「」を合成しようとしましたが、うまくいきませんでした。これを達成するために私が間違っている/別の方法を考えていますか?

4

2 に答える 2

2

@Dimitriy V. Masterovによる回答は問題ありません。これは重要な詳細を説明するだけです。

あなたは行くことによってあなたのエラーを見ることができます

. local item "BANKOFAMERICA"  " INC" " INCORPORATED" " SYS " " SYSTEMS" " PVT" " PRIVATE"    " LIMITED" " LTD" " LLC" " CORP" "LIMITED LIABILITY" "CORPORATION" " CORP " " COMPANY" " CO " " TECHNOLOGY" " TECH " " GLOBAL"

. mac li 

何が起こるかというと"、マクロの開始と終了を示す区切り文字として最初と最後が取り除かれます。最初に複合二重引用符を使用してそれを停止する必要があります。Stata に関する限り、`" と "' は一致する文字です (ネストすることはできますが、ここでは必要ありません)。

于 2013-08-05T22:18:24.660 に答える