"epitools"包的一些示例存在一些问题,例如具有该epicurve.dates
功能.
这是一个流行曲线的简单例子(按天计算epicurve.dates
)
sampdates <- seq(as.Date("2014-01-01"), Sys.Date(), 1)
x <- sample(sampdates, 100, rep=TRUE)
epicurve.dates(x)
Run Code Online (Sandbox Code Playgroud)
这是结果情节:
什么都没有绘制,如果我们查看epicurve.dates
代码,我们可以看到问题发生时,它试图将日期向量编码为一个因素.只有NAs
生产.
format <- "%Y-%m-%d"; before <- after <- 7
dates0 <- as.Date(x, format = format)
min.date <- min(dates0, na.rm = TRUE) - before
max.date <- max(dates0, na.rm = TRUE) + after
cdates <- seq(min.date, max.date, by = 1)
> factor(dates0, levels = cdates)
[1] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
[24] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
[47] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
[70] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
[93] <NA> <NA> <NA> <NA> <NA> <NA> <NA> <NA>
51 Levels: 2013-12-25 2013-12-26 2013-12-27 2013-12-28 2013-12-29 2013-12-30 2013-12-31 2014-01-01 ... 2014-02-13
Run Code Online (Sandbox Code Playgroud)
在?factor
帮助中我们可以阅读:
如果x [i]等于level [j],则结果的第i个元素是j.如果在级别中找不到匹配的x [i]匹配(对于排除的值将发生),则结果的第i个元素被设置为NA.
但是当我测试x [i]是否等于[j]级时,它都是真的......
> sum(dates0 %in% cdates) == length(dates0)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
(它的作用例如factor(dates0, levels = factor(cdates))
)
这个例子来自官方epicurve.dates
文档然后我想它曾经工作过,我factor
在http://stat.ethz.ch/R-manual/R-devel/doc/上寻找功能的变化以html/NEWS.html为例,但我一无所获.
有什么变化吗?