我在Stata工作,需要和供电。其中一项任务是:“创建一个名为heatd
的新变量(加热天数),等于17C以下的度数”
我在Stata尝试了这个,用Google搜索并搜索过,但我不确定这是什么意思。我打算制作一个虚拟变量吗?
如果有人可以帮我提示,那么国家代码我将非常感激。
答案 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)
,它根据是否太长(不好)或可能更明确(好)来划分意见。