我有一个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
值。
您对如何解决此问题有任何建议吗?是否有可以使用日期的备用库/包?
答案 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)