web-dev-qa-db-ja.com

Stata 12のgenとegenの違いは何ですか?

新しい変数を生成するために2つの異なるコマンドがある理由はありますか?

genをいつ使用し、egenをいつ使用するかを覚えておく簡単な方法はありますか?

16
max

どちらも新しい変数を作成しますが、関数の異なるセットで動作します。次のようにデータセット内の他の変数を単純に変換する場合、通常はgenを使用します

gen newvar = oldvar1^2 * oldvar2

私のワークフローでは、egenは通常、次のようにすべての観測で機能する関数が必要な場合に表示されます

egen max_var = max(var)

またはより複雑な指示

egen newvar = rowmax(oldvar1 oldvar2)

oldvar1oldvar2の間の各観測の最大値を計算します。 2つのコマンドを分離するための明確なロジックはないと思います。

16
griverorz

gen

generategenまたはgと省略される場合があり、次の数学演算子および関数で使用できます。

  • _+_追加
  • _-_減算
  • _*_乗算
  • _/_除算
  • _^_パワー

多数の機能が利用可能です。ここではいくつかの例を示します。

  • abs(x) xの絶対値
  • exp(x) xの対数
  • int(x) or trunc(x)整数値への切り捨て
  • ln(x), log(x) xの自然対数
  • round(x) xの最も近い整数に丸めます
  • round(x,y) xはyの単位で丸められます(つまり、round(x、.1)は小数点第1位に丸められます)
  • sqrt(x) xの平方根
  • runiform()は、0から1に近い均一に分散された数値を返します
  • rnormal()は、標準正規分布に従う数値を返します
  • rnormal(x,y)は、xの平均とs.dの正規分布に従う数値を返します。 yの

egen

次の例のように、egenコマンドに、より複雑な可能性がいくつか実装されています。

  • egen nkids = anycount(pers1 pers2 pers3 pers4 pers5), value(1)
  • egen v323r = rank(v323)
  • egen myindex = rowmean(var15 var17 var18 var20 var23)
  • egen nmiss = rowmiss(x1-x10 var15-var23)
  • egen nmiss = rowtotal(x1-x10 var15-var23)
  • egen incomst = std(income)
  • bysort v3: egen mincome = mean(income)

詳しい使用法の説明は、この link にあります。

0
GorkemHalulu