2016-11-25 2 views
0

je la trame de données exemple suivant:Convertir dataframe à la liste pour l'algorithme 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 

Je veux utiliser l'algorithme Farrington algo.farrington du paquet surveillance R. Toutefois, afin de le faire mes données doivent être un objet de classe disProgObj. Sur la base de l'exemple que j'ai trouvé dans le PDF du paquet de surveillance, le résultat devrait être une liste.

Est-ce que quelqu'un sait comment convertir mes données pour que l'algorithme fonctionne?

Répondre

1

pour traiter de telles données, la surveillance de paquets de R fournit la classe S4 "m" (de série de temps de surveillance), qui remplace la classe "disProg". Pour convertir vos données en un « m » objet:

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 

qui donne:

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

Head of observed: 
    observed1 
[1,]   0 

Cet objet « m » pourrait être converti en obsolète « disProg » classe via sts2disProg() comme illustré dans la réponse de Roman . Cependant, cette conversion n'est pas nécessaire puisque la fonction farrington() peut être utilisée directement avec un objet "sts" (il appelle en interne algo.farrington()).

Les auteurs du paquet encouragent l'utilisation de la nouvelle classe "sts" pour encapsuler des séries temporelles de comptage. Voir le paquet vignette("monitoringCounts") publié au http://doi.org/10.18637/jss.v070.i10 pour une description des outils de détection d'épidémie.

1

Quelque chose comme ça?

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) 

Les résultats de la conversion au-dessus d'un objet "disProg", qui imprime comme suit:

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

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

Cela semble fonctionner, mais quand j'essaie d'utiliser algo.farrington (xsts) je reçois l'erreur: Erreur dans disProgObj $ observé: $ opérateur non défini pour cette classe S4 –

+0

@Joep_S vous devez enregistrer le résultat de la 'stsdisProg' fonction à une variable et l'utiliser dans' algo.farrington'. –