R图密度平滑时间序列

时间:2011-02-06 23:07:14

标签: r graph charts probability

我希望对某些时间序列数据进行概率分布。我的数据采用以下格式

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

时间列有一些R必须插值的缺失值。我希望得到一条漂亮的平滑曲线来突出繁忙的时期。我尝试使用tsdensityplot,但这些并不会产生我想要的东西。例如,

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 个答案:

答案 0 :(得分:2)

我认为你肯定是在zoo之后,它有几个处理NA的功能。另请参阅na.aggregatena.approxna.locf

答案 1 :(得分:2)

你让它变得比你意识到的要难一点。我现在可以通过在你的时代前添加一个日期来使它变得更容易。

另外,我添加了一个变量“texinp”和一个textConnection()语句,因此您可以剪切/粘贴以下代码并直接运行它。数据被加载到变量texinp中,并由read.zoo语句以与读取.csv文件类似的方式读取。现在,这将允许您绘制事物并让您了解如何使用read.zoo读取.csv文件。

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)

根据你的问题,你谈到了“忙碌时期”。我可能错了,但我假设在21:00时100的值是“最繁忙的时期”。如果这是真的,那么你不需要密度图,上面的图是你所追求的。

如果我错了,请告诉我。