我有以下示例数据框架:
data.frame(WEEK=c(1:10),YEAR=2000,
NUMBER=c(0,1,4,25,9,7,4,2,9,12))
WEEK YEAR NUMBER
1 1 2000 0
2 2 2000 1
3 3 2000 4
4 4 2000 25
5 5 2000 9
6 6 2000 7
7 7 2000 4
8 8 2000 2
9 9 2000 9
10 10 2000 12
我想从R中的surveillance
软件包中使用Farrington算法algo.farrington
。但是,为了这样做,我的数据必须是类disprogobj的对象。根据我在监视软件包的PDF中发现的示例,结果应为列表。
有人知道如何转换我的数据,以便我可以使算法工作吗?
要处理此类数据,R软件包监视提供了S4类" STS"(监视时间序列),它取代了" Disprog"类。将数据转换为" STS"对象:
x <- data.frame(WEEK=c(1:10), YEAR=2000, NUMBER=c(0,1,4,25,9,7,4,2,9,12))
xsts <- sts(observed = x$NUMBER, start = c(2000, 1), frequency = 52)
xsts
产生:
-- An object of class sts --
freq: 52
start: 2000 1
dim(observed): 10 1
Head of observed:
observed1
[1,] 0
如罗马答案中所示,可以通过sts2disProg()
转换为过时的" Disprog"类。但是,此转换不是必需的,因为该函数farrington()
可以直接与" STS"对象一起使用(它内部调用algo.farrington()
)。
软件包作者鼓励使用较新的" STS"类来封装计数时间序列。请参阅http://doi.org/10.18637/jss.ss.s.v070.i10的软件包vignette("monitoringCounts")
,以获取爆发检测工具的说明。
类似的东西?
library(surveillance)
x <- data.frame(WEEK=c(1:10),YEAR=2000,
NUMBER=c(0,1,4,25,9,7,4,2,9,12))
xsts <- sts(observed = x$NUMBER, start = c(2000, 1), frequency = 52)
sts2disProg(sts = xsts)
上面的转换导致"拆卸"对象,该对象如下打印:
-- An object of class disProg --
freq: 52
start: 2000 1
dim(observed): 10 1
Head of observed:
observed1
[1,] 0