【问题标题】:Dummy variables for dates日期的虚拟变量
【发布时间】:2020-11-17 11:34:50
【问题描述】:

我们有两个国家从 1990 年到 2013 年 23 年的每日汇率数据。我们希望为特定时间段创建一个等于 2000-2002 的虚拟变量,因此当时间在 2000 年和 2002 年之间时,它等于 1,每隔一年,它等于 0。我们还将为2007 - 2009 其中,与上一个问题一样,当时间不在我们的日期之间时等于 0,当时间在我们的日期之间时等于 1。

我们该怎么做呢?请帮助我们。

【问题讨论】:

  • 什么?他希望生成虚拟数据,这意味着他没有任何数据,这意味着他没有最小的可重现示例。他只想要一个范围内的随机日期。

标签: r date dummy-variable


【解决方案1】:

非常有趣的问题!我尝试使用runif(),但没有得到它。最后,这就是我所做的:

dates <- sample(seq(from = as.Date("2000-01-01"), to = as.Date("2002-12-31"), length.out = 1000), 100, replace = TRUE)

我放了一些非常随意的配置。我所做的是:首先,我设置了从 2000 年 1 月 1 日到 2002 年 12 月 31 日的 1000 个步长。从中,我告诉程序随机选择 100 个,允许重复。这些是任意配置。

请注意,这甚至不是像runif() 那样真正的伪随机;它们均匀地散布在线条上,但步数与选择的比率越大,看起来越随机。

编辑:我有可能误解了你的问题。起初我以为你想生成 2000-2002 年(以及后来的 2007-2009 年)范围内的虚拟日期数据,但现在我想你想确定它是否在该范围内......无论哪种方式,我都不太明白.如果是第二个,代码如下:

df <- data.frame(Dates = sample(seq(from = as.Date("1998-01-01"), to = as.Date("2004-12-31"), length.out = 2000), 200, replace = TRUE),
                 otherStuff = rnorm(200))

df$isInRange <- ifelse(df$Dates > as.Date("2000-01-01") & df$Dates < as.Date("2002-12-31"), 1, 0)

也就是说,如果你不想使用除了基本 R 之外的任何东西。

【讨论】:

  • 这如何回答这个问题?
  • 非常感谢您抽出宝贵时间回答,这太完美了!
猜你喜欢
  • 2021-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 2018-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多