【问题标题】:How do you create a dummy for a specific year/quarter for time series data?您如何为时间序列数据创建特定年份/季度的虚拟变量?
【发布时间】:2014-12-16 17:13:10
【问题描述】:

我在 ts() 函数的帮助下创建了一个时间序列数据。数据为季度数据,范围为 1980Q1-2013Q1。它由 5 个变量组成:消费、石油、收入、利率和财富。我想从变量“consumption”创建一个虚拟变量,即 2008 年第三季度等于 1,其他所有变量等于 0。

有人可以帮帮我吗?

【问题讨论】:

  • 你能用dput显示几行数据吗
  • 如何正确使用该功能?我只是得到很多数字,它看起来非常非结构化。尝试使用 n=10 缩小范围,但它看起来仍然是非结构化的。
  • 我以为我做错了,所以我删除了它。
  • 您能否检查time(ts1) 是否有效,如果有效,请发布head(time(ts1))
  • [1] 1980.25 1980.50 1980.75 1981.00 1981.25 1981.50

标签: r


【解决方案1】:

你可以试试

  ts2 <- cbind(ts1, dummy=(time(ts1)==2008.75 & ts1[,'Consumption']==1)+0)

【讨论】:

  • 说找不到函数“index”。
  • @NikaNika 你能否展示一个小示例数据,其中包含有关如何创建 ts 对象的代码。
  • 我从一个 excel 文件中导入它,其中第一个包含变量的名称,然后列出每个变量的值。我使用 read.csv2 将它导入到 R 中。然后 ts(data, frequency=4, start=c(1980,1))。我用 log() 函数记录值,然后用 diff() 区分它
  • @NikaNika 我试过你的方法,index(ts1) 给了[1] 1980.00 1980.25 1980.50 3 行数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
相关资源
最近更新 更多