【问题标题】:Stata - Help creating a variable which equals the number of degreesStata - 帮助创建一个等于度数的变量
【发布时间】:2015-10-27 12:23:54
【问题描述】:

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

我在 Stata 中尝试过这个,在这里用谷歌搜索和搜索过,但我不确定这是什么意思。我是要创建一个虚拟变量吗?

如果有人可以帮助我,例如提示,我将非常感激。

【问题讨论】:

  • 没有解释数据,也没有尝试编码。你的变量名是什么?你有每日数据,还是什么?在什么时间段内计算采暖度天数?你有一个地方或几个地方的数据吗?有一个简单的答案,但坦率地说,您应该为此更加努力。
  • 它是时间序列数据,每天设置,特定时间(上午 9 点到 10 点)。可提及的变量是“日期”、“温度”、“价格”、“生产”、“消费”。
  • 对不起,不是按回车的意思。数据是针对一个特定区域的。我已经轻松完成了所有其他任务,但由于某种原因我有点卡在这里。
  • 好的,但是要在什么时间段内计算采暖度天数?
  • 在我看来没有这方面的信息,所以我假设整个期间,即我所有的数据 (?)

标签: stata


【解决方案1】:

有些人会认为我对提问者的态度已经很严厉了,所以这里有一个可重复的例子。这个想法是当温度低于 17 摄氏度(以下简称 17 摄氏度)时我们打开加热,因此如果温度低于 17 摄氏度,则一天所需的升温为 (17 - 温度)摄氏度,否则为 0 摄氏度。通常将数月、数年或数年的时间相加;提问者对此一无所知,所以我指出egen 的total() 函数是最好的工具。无论是单独的天数还是较长时间的总和,测量单位都是摄氏度天或度天数,并具有关于使用哪种温度标度的惯例(摄氏度或华氏度等)。有些人可能希望将其以图形方式视为温度-时间图上的一个区域,或者视为离散近似的积分。

. 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),它根据是否太长(坏)或更明确(好)来划分意见。

【讨论】:

  • 我尝试添加所有相关信息,但我并不总是确定什么是相关的。但我很感谢您抽出宝贵的时间来回答您的问题。我会调查这个。再次感谢。
  • 谢谢;出于您的兴趣,请查看stackoverflow.com/help/mcve,因为只是要求提供代码并且没有显示任何代码在这里被广泛认为是题外话。这听起来势利,但这里的目标明确地是专业和狂热的程序员。 Stata 的初学者问题在 Statalist 上会更好(我非常活跃)。
  • 编辑:我想我现在做到了。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
相关资源
最近更新 更多