Stata - 帮助创建一个等于度数

时间:2015-10-27 12:23:55

标签: stata

我在Stata工作,需要和供电。其中一项任务是:“创建一个名为heatd的新变量(加热天数),等于17C以下的度数”

我在Stata尝试了这个,用Google搜索并搜索过,但我不确定这是什么意思。我打算制作一个虚拟变量吗?

如果有人可以帮我提示,那么国家代码我将非常感激。

1 个答案:

答案 0 :(得分:0)

有些人会对提问者判断我很难,所以这是一个可重复的例子。我们的想法是,当它降至17摄氏度以下(此后为17摄氏度)时,我们会开启加热,因此如果温度低于17摄氏度,则需要在一天内升温(17 - 温度),否则为0摄氏度。通常将数月,季节或年份相加;提问者对此并不了解,因此我指出egen total()函数的方向是最好的工具。对于个别日子或在较长时期内总计,测量单位是度C天或度日,其具有关于使用哪个温度标度的惯例(摄氏度或华氏度等)。有些人可能想要将其图形化地视为温度 - 时间图上的区域,或者作为离散近似的积分。

. clear 

. input temp date 

          temp       date
  1. 19     1
  2. 18     2
  3. 17     3    
  4. 16     4   
  5. 15     5
  6. end 

. gen heatday = max(0, 17 - temp) 

. list

     +-----------------------+
     | temp   date   heatday |
     |-----------------------|
  1. |   19      1         0 |
  2. |   18      2         0 |
  3. |   17      3         0 |
  4. |   16      4         1 |
  5. |   15      5         2 |
     +-----------------------+

问题的核心是max(0, 17 - temp)。在Stata中执行此操作的另一种方法可能是cond(temp < 17, 17 - temp, 0),它根据是否太长(不好)或可能更明确(好)来划分意见。