R 中日期向量的核密度估计
Kernel Density Estimate in R for Vector of Dates
我有一个包含 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
值。
你对如何解决这个问题有什么建议吗?是否有其他 libraries/packages 可以处理日期?
以下是我的绘制方式(没有花里胡哨的东西):
数据
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)
输出
我有一个包含 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
值。
你对如何解决这个问题有什么建议吗?是否有其他 libraries/packages 可以处理日期?
以下是我的绘制方式(没有花里胡哨的东西):
数据
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)