【发布时间】:2018-04-24 18:01:56
【问题描述】:
对我来说可能微不足道但很难做到。
鉴于A中的start和end日期,以及日期范围之间的duration in months:
A=
structure(list(start..yyyy.mm. = c(197901L, 197901L, 197901L,
197901L, 197901L), X.yyyy.mm. = c(197901L, 197904L, 197908L,
197902L, 197902L), duration = c(1L, 4L, 8L, 2L, 2L), area..km.2. = structure(c(1L,
2L, 4L, 3L, 5L), .Label = c("46952.85", "c(125267.7, 72379.43, 72468.91, 13200.26)",
"c(19814.74, 39570.96)", "c(26513.05, 26513.05, 26513.05, 26513.05, 26513.05, 19898.57, 26513.05, 26513.05)",
"c(52291.77, 52291.77)"), class = "factor")), .Names = c("start..yyyy.mm.",
"X.yyyy.mm.", "duration", "area..km.2."), class = "data.frame", row.names = c(NA,
-5L))
我想制作类似于下图所示的内容(忽略直方图)。每个duration 的颜色不同。在A 中,第一个area 值对应于日期范围等中的first month。
如您所见,A 中的日期不是连续的。因此,我们的意图是创建一个连续的日期轴,例如 ts <- seq(as.Date("1910-01-01"), as.Date("2015-12-31"), by="month") 和相对于给定 duration 的 start 和 enddates 的阴影区域。
记录的值不应包含NA.的日期范围
如何使用任何包来实现这是 R?
想到的第一个想法是创建一个连续日期:
library(dplyr)
data_with_missing_times <- full_join(ts,A)
然后进行绘图?一个类似的问题是here 但在这里我打算遮蔽日期范围。我的数据来自1910 - 2015,在某些时间间隔内缺少日期范围。
谢谢。
【问题讨论】:
-
A中的月份是 yearmonth 格式吗?编辑:对不起,我看到了标题 -
您能解释一下
area..km.2列的情况吗?我对像“c(125267.7, 72379.43, 72468.91, 13200.26)”这样的级别作为一个字符串感到困惑。你想让它成为一个嵌套列表列还是什么? -
@camille: 我猜你需要使用
separate_rows来分解每个月的数据 -
@camille 在
A中,第一个area值对应于日期范围等中的第一个月。例如,在第2 行中,197901 is 125267.7, 197902 is 72379.43等区域...跨度>
标签: r date time-series