Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从二进制时间序列创建列表_R_Time Series_Timespan_Dygraphs - Fatal编程技术网

R 从二进制时间序列创建列表

R 从二进制时间序列创建列表,r,time-series,timespan,dygraphs,R,Time Series,Timespan,Dygraphs,我有一个简单的二元时间序列,它列出了美国是否处于衰退状态(),我想把它添加为动态图中的阴影区域。然而,动态曲线图只包含一个列表(见下图),所以我需要一个快速简单的方法来创建每个衰退期的列表,该列表用1标记 在R中执行此操作的任何有效方法,而无需编写查看当前值和滞后值的函数 recession_periods <- list( list(from = "1920-1-1", to = "1930-1-1"), list(from = "1940-1-1", to = "195

我有一个简单的二元时间序列,它列出了美国是否处于衰退状态(),我想把它添加为动态图中的阴影区域。然而,动态曲线图只包含一个列表(见下图),所以我需要一个快速简单的方法来创建每个衰退期的列表,该列表用1标记

在R中执行此操作的任何有效方法,而无需编写查看当前值和滞后值的函数

    recession_periods <- list(
  list(from = "1920-1-1", to = "1930-1-1"),
  list(from = "1940-1-1", to = "1950-1-1"),
  list(from = "1960-1-1", to = "1970-1-1")
)
衰退期是,日期为'seq',润滑套装为
lubridate。例如,这将创建一个以10年为间隔的日期序列

library(data.table)
library(lubridate)

elements <- data.table(from = seq(from = as.Date('1920-01-01'), to = as.Date('1990-01-01'),by = "10 year"))
# Add the space in years between dates
elements[, to := from + years(10)]
finalList <- setNames(split(elements, seq(nrow(elements))), rownames(elements))
使用
seq
中的
by
参数和
lubridate
函数,可以按不同的年数、周数、天数等创建许多其他日期对

$`1`
         from         to
1: 1920-01-01 1930-01-01

$`2`
         from         to
1: 1930-01-01 1940-01-01

$`3`
         from         to
1: 1940-01-01 1950-01-01

$`4`
         from         to
1: 1950-01-01 1960-01-01

$`5`
         from         to
1: 1960-01-01 1970-01-01

$`6`
         from         to
1: 1970-01-01 1980-01-01

$`7`
         from         to
1: 1980-01-01 1990-01-01

$`8`
         from         to
1: 1990-01-01 2000-01-01