2017-02-06 6 views
0

からの列の特定のリストの最大値を見つける:のStata - 私は私のStataプロジェクトのいくつかの変数名に対応するローカルマクロを宣言しているマクロ

local letters a b c d 

私はすべてを使用して新しい変数を生成することができるようにしたいですマクロletters内の変数:

gen highest_letter = max(`letters') 

しかし、これが動作し、次のエラーメッセージにつながりません。

a b c d not found 

max()のようなコンマで区切っする入力することを必要とするからです。私は見つけることができるよう、

gen highest_letter = max(a, b, c, d) 

は私がマクロlettersを操作する、またはmax()以外の機能を使用するためにどのような方法があります変数のリストの中で最も高い値を 'max() `関数に手動で入力する必要はありませんか?

答えて

1

egen機能rowmax()にはカンマは必要ありません。

egen highest_letter = rowmax(a b c d) 

上記のように、ここでローカルマクロを定義することは、他の目的で必要としない限り不可能です。いずれにしても、ここでの問題は、マクロを使用するかどうかにかかわらず発生します。あなたが言うように、問題はカンマで区切られた引数のためのmax()の要件です。マクロ

local letters : subinstr local letters " " ",", all 

使用していることを

しかし、与えられたコンマを挿入する方法です。名前が単一のスペースで区切られている場合にのみ動作します。名前の実際のリストが非常に長い場合や、プログラムを作成している場合やファイルを作成している場合は、カンマを手動で挿入するよりも速くなります。

関連する問題