R график плотности сглаженного временного ряда - PullRequest
3 голосов
/ 07 февраля 2011

Я хочу сделать распределение вероятностей некоторых временных рядов данных.Мои данные в следующем формате

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

В столбце времени есть некоторые пропущенные значения, которые R придется интерполировать.Я хочу получить хорошую плавную кривую, чтобы выделить занятые периоды.Я пробовал с ts, density и plot, но они не дают того, что я ищу.Например,

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")

Но это дает мне линии, нарисованные в сумасшедшем порядке и как распределение вероятностей.

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011

Вы сделали это немного сложнее, чем могли бы себе представить.Сейчас я сделаю это проще, добавив дату перед вашим временем.

Кроме того, я добавил переменную "texinp" и инструкцию textConnection (), чтобы вы могли вырезать / вставить следующий код и запуститьэто напрямую.Данные загружаются в переменную texinp и читаются оператором read.zoo аналогично чтению файла .csv.На данный момент это позволит вам составить график и дать вам представление о том, как читать файлы .csv, используя 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)

Из вашего вопроса вы говорили о «периодах занятости».Я могу ошибаться, но я предполагаю, что значение 100 во время 21:00 является «самым загруженным периодом».Если это правда, тогда вам не нужен график плотности, и вам нужен тот график, который вам нужен.

Дайте мне знать, если я ошибаюсь.

2 голосов
/ 07 февраля 2011

Я думаю, что вам определенно нужен пакет zoo , который имеет несколько функций для работы с NA.См. Также na.aggregate, na.approx и na.locf.

...