2011-02-06 5 views
3

Je souhaite effectuer une distribution de probabilité de certaines séries chronologiques. Mes données sont dans le format suivantDensité de lissage R lissé Séries chronologiques

00:00, 3 
01:00, 50 
05:00, 13 
10:00, 34 
17:00, 80 
21:00, 100 

La colonne de temps a des valeurs manquantes que R devra interpoler. Je veux obtenir une belle courbe lisse pour mettre en évidence les périodes occupées. J'ai essayé avec ts, density et plot mais ceux-ci ne produisent pas ce que je suis après. Par exemple,

data1 <- read.csv(file="c:\\abc\\ts.csv", head=FALSE, sep=",") 
data1$V1 <- strptime(data1$V1, format="%H:%M") 
plot(data1$V2, density(data1$V1), type="l") 

Mais cela me donne des lignes dessinées dans un ordre fou et comme une distribution de probabilité.

Répondre

2

Je pense que vous êtes définitivement après le paquet zoo, qui a plusieurs fonctions pour traiter les NA. Voir na.aggregate, na.approx et na.locf également.

+0

Que signifie NA? Ayant du mal à le trouver sur le web, mes termes de recherche sucent: r, zoo, na –

+0

@Jason Axelson: NA = valeur manquante (non disponible) – daroczig

2

Vous l'avez rendu un peu plus difficile que vous pourriez le réaliser. Je vais le rendre plus facile pour l'instant en ajoutant une date en face de votre temps.

De plus, j'ai ajouté une variable "texinp" et une instruction textConnection() afin que vous puissiez couper/coller le code suivant et l'exécuter directement. Les données sont chargées dans la variable texinp et sont lues par l'instruction read.zoo d'une manière similaire à la lecture d'un fichier .csv. Pour l'instant, cela vous permettra de tracer des choses et vous donne une idée de la façon de lire les fichiers .csv en utilisant read.zoo.

library(zoo) 
library(chron) 

texinp <- " 
Time, Mydata 
2011-02-06 00:00, 3 
2011-02-06 01:00, 50 
2011-02-06 05:00, 13 
2011-02-06 10:00, 34 
2011-02-06 17:00, 80 
2011-02-06 21:00, 100" 

myd.zoo <- read.zoo(textConnection(texinp), header=TRUE, FUN = as.chron, sep=",") 
myd.zoo 

plot(myd.zoo) 

De votre question, vous avez parlé de «périodes occupées». Je peux me tromper, mais je suppose que la valeur de 100 à 21:00 est la "période la plus occupée". Si c'est vrai, alors vous n'avez pas besoin d'un graphique de densité, et l'intrigue ci-dessus est ce que vous recherchez. Faites-moi savoir si je me trompe.

Questions connexes