2016-11-25 153 views
0

,我有以下示例数据帧:转换数据框中列出了法林顿算法algo.farrington

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 

我想从surveillance包R.使用富华算法algo.farrington然而,为了做到这一点我的数据必须是类disProgObj的对象。根据我在监控软件包的PDF中找到的例子,结果应该是一个列表。

有谁知道如何转换我的数据,所以我可以让算法工作?

回答

1

为了处理这种数据时,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 

这种“STS”对象可以通过sts2disProg()在罗马的回答说明转换为过时的“disProg”级。但是,此转换不是必需的,因为功能farrington()可以直接与“sts”对象(它在内部调用algo.farrington())一起使用。

软件包作者鼓励使用较新的“sts”类来封装计数时间序列。有关爆发检测工具的说明,请参阅发布在http://doi.org/10.18637/jss.v070.i10的包。

1

是这样的?

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) 

在一个“disProg”对象,打印如下上述的转换的结果:

-- An object of class disProg -- 
freq:  52 
start:  2000 1 
dim(observed): 10 1 

Head of observed: 
    observed1 
[1,]   0 
+0

这似乎工作,但是当我尝试使用algo.farrington(xsts)时出现错误:DisProgObj $观察到错误:$运算符没有为此S4类定义 –

+0

@Joep_S您需要保存结果'stsdisProg'函数给一个变量并在'algo.farrington'中使用。 –