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