在 R 中按日期绘制箱线图

Boxplot by Date in R

随着时间的推移,我每天都会收集数据。我想将数据绘制为总结每日数据的箱线图。我见过的大多数示例都按 daily 或每月收集数据,并从中制作箱线图。

举个例子:

    library(xts)
 dates=c(rep("2011-02-11",8),rep("2011-02-13",8),rep("2011-02-19",8))
measure=rnorm(length(dates))
example <- as.xts( measure,order.by = as.Date( dates ))
boxplot(coredata(example), order.by=index(example),.CLASS = "xts")

我最终没有按日期分隔。

我想不通。我认为这可能与 R 处理 X 值的方式有关,我听说它将它们转化为因子。任何帮助将不胜感激。

这是使用 data.frame 而不是 as.xts 的解决方案:

example <- data.frame(dates=as.Date(dates),measure=measure)
boxplot(example$measure ~ example$dates)

更新

为缺失日期创建空间的一种方法是创建一个包含所有缺失日期的 NA 的新数据集,然后在箱线图中考虑 NA。

原始示例

dates=c(rep("2011-02-11",8),rep("2011-02-13",8),rep("2011-02-19",8))
measure=rnorm(length(dates))
example <- data.frame(dates=as.Date(dates),measure=measure)

创建模板 data.frame,开始日期和结束日期

n=20
template<-data.frame(dates = seq(as.Date(c("2011-02-11")), by = 'day', length = n)) 

合并模板和示例,使缺失日期的变量值为 NA "measure",最后是箱线图。

df<-merge(template, example, all.x=TRUE, by="dates")

boxplot(df$measure ~ addNA(df$dates))