我希望对某些时间序列数据进行概率分布。我的数据采用以下格式
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")
但是这给了我疯狂排序和概率分布的线条。
答案 0 :(得分:2)
我认为你肯定是在zoo之后,它有几个处理NA的功能。另请参阅na.aggregate
,na.approx
和na.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的值是“最繁忙的时期”。如果这是真的,那么你不需要密度图,上面的图是你所追求的。
如果我错了,请告诉我。