Stata 12中gen和egen有什么区别?

时间:2012-10-20 23:30:19

标签: stata

为什么有两个不同的命令来生成新变量?

是否有一种简单的方法可以记住何时使用gen以及何时使用egen

2 个答案:

答案 0 :(得分:15)

它们都创建了一个新变量,但使用不同的函数集。当您对数据集中的其他变量进行简单转换时,通常会使用gen,例如

gen newvar = oldvar1^2 * oldvar2

在我的工作流程中,egen通常会在我需要适用于所有观察的功能时出现,例如

egen max_var = max(var)

或更复杂的说明

egen newvar = rowmax(oldvar1 oldvar2)

计算oldvar1oldvar2之间每次观察的最大值。我不认为分离这两个命令有明确的逻辑。

答案 1 :(得分:0)

gen

generate可以缩写为geng,可以与以下数学运算符和函数一起使用:

  • +另外
  • -减法
  • *乘法
  • /
  • ^权力

有大量功能可供使用。以下是一些例子:

  • abs(x) x的绝对值
  • exp(x) antilog of x
  • int(x) or trunc(x)截断为整数值
  • ln(x), log(x) x的自然对数
  • round(x)舍入到最接近的整数x
  • round(x,y) x以y为单位舍入(即圆(x,.1)轮到小数点后一位)
  • sqrt(x) x的平方根
  • runiform()返回0到近1
  • 之间的均匀分布数字
  • rnormal()返回遵循标准正态分布的数字
  • rnormal(x,y)返回正态分布后的数字,平均值为x和s.d. of 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找到。