R日期向量密度估计

时间:2015-08-20 14:52:05

标签: r date kde

我有一个195个日期字段的向量,我将其分配给变量xvar,如下所示:

xvar <-as.Date(getvars[,3],"%m/%d/%Y") 

我希望能够在得到的直方图上拟合分布,然后从该概率分布中进行采样。我可以使用ggplot2绘制此日期向量的直方图和密度,但我不知道从最终密度中采样的方法。

我下载了R包ks。它对于实数的向量非常有效,但是当我在运行这些行之后传递日期向量时:

xvar <-as.Date(getvars[,3],"%m/%d/%Y") # Vector of Dates
xvnonull <- (na.omit(xvar)) #Remove any NAs
fhat <- kde(xvnonull) #Try to Fit KDE

我收到错误声明:

"Error in rep(1, n) : invalid 'times' argument".

我已删除所有NA值。

您对如何解决此问题有任何建议吗?是否有可以使用日期的备用库/包?

1 个答案:

答案 0 :(得分:2)

这里是我如何策划这个(没有铃声和口哨声):

数据

set.seed(1234)
xvar<-
  sample(seq(from=as.Date("2015-01-01"),length.out=100L,by="day")
  )[colSums(matrix(sample(34L,300L,T),nrow=3))-2L]

解决方案

library(ks)
xvar_f<-as.factor(xvar)
xvar_i<-as.integer(xvar_f)
par(mar=c(5.6,4.1,4.1,2.1))
plot(kde(xvar_i),xaxt="n",xlab="",ylab="",
     main="Density of Dates",las=1)
tx=seq(min(xvar_i),max(xvar_i),by=5)
lb=levels(xvar_f)[tx]
axis(side=1,at=tx,labels=lb,las=2)

输出

enter image description here