あなたが望むものにはループは必要ありません。 Stataの質問のサンプルデータを提供するより良い方法は、SSCのdataex
を参照してください。
ここ
clear
input ID str3 (A1 A2 A3)
1001 ABD AAA ABC
1002 ABE BBB CCC
1003 ABC CCC DDD
end
gen trackr = inlist("ABC", A1, A2, A3)
list if inlist("ABC", A1, A2, A3)
+---------------------------------+
| ID A1 A2 A3 trackr |
|---------------------------------|
1. | 1001 ABD AAA ABC 1 |
3. | 1003 ABC CCC DDD 1 |
+---------------------------------+
inlist()
第二以降の引数のいずれかが、そうでなければ、最初の引数は0に等しい場合1が得られます。
ループでは、display A1[_n]
のようなものは、最初の観測では変数をループするが、観測値はループしないので、値が表示されます。しかしループは必要ありません。
、あなたの基準を満たすだけの最初の観測を見たい場合は、それを行うための一つの方法は、
. list if trackr & sum(trackr) == 1
+---------------------------------+
| ID A1 A2 A3 trackr |
|---------------------------------|
1. | 1001 ABD AAA ABC 1 |
+---------------------------------+
であり、list if sum(inlist("ABC", A1, A2, A3)) == 1
も最初、このような観測を見つけるために働くだろうということになります。
「ボーナス」という言い回しは、先生に尋ねる生徒のためではなく、生徒に挑戦する先生にとっては効果的です! –