2016-11-25 3 views
0

У меня есть следующий кадр пример данных:Преобразовать dataframe в список для алгоритма Farrington 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 

Я хочу использовать алгоритм FARRINGTON algo.farrington из surveillance пакета в R. Однако, для того, чтобы сделать это мои данные должны быть объектом класса disProgObj. Основываясь на примере, который я нашел в PDF пакета наблюдения, результатом должен быть список.

Кто-нибудь знает, как преобразовать мои данные, чтобы я мог заставить алгоритм работать?

ответ

1

Для обработки таких данных, наблюдение R пакет обеспечивает класс «петл» S4 (наблюдения временных рядов), который заменяет класс «disProg». Чтобы преобразовать данные в «СЦ» объекта:

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 

Это «НТО» объект может быть преобразован в устаревший класс «disProg» через sts2disProg(), как показано в ответ римлянина , Однако это преобразование не требуется, так как функция farrington() может использоваться непосредственно с объектом «sts» (она внутренне вызывает algo.farrington()).

Авторы пакета рекомендуют использовать новый класс «sts» для инкапсуляции циклов отсчета времени. См. Пакет vignette("monitoringCounts"), опубликованный в 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 $ наблюдается: $ operator не определен для этого класса S4 –

+0

@Joep_S вам нужно сохранить результат 'stsdisProg' для переменной и использовать ее в' algo.farrington'. –