我想为许多不同的时间序列制作季节性箱线图。我希望下面的代码清楚地说明了我想要做什么。
我现在的问题是,如何用尽可能少的代码行以最优雅的方式做到这一点。我可以使用函数“子集”为每个月创建一个新对象,然后绘制它,但这似乎不是很优雅。我尝试使用“拆分”功能,但我不知道如何从那里开始。
如果我的问题没有明确说明,请告诉我或对其进行编辑以使其更清楚。
非常感谢任何直接帮助或与其他网站/帖子的链接。谢谢你的时间。
这是代码:
## Create Data
Time <- seq(as.Date("2003/8/6"), as.Date("2011/8/5"), by = "2 weeks")
data <- rnorm(209, mean = 15, sd = 1)
DF <- data.frame(Time = Time, Data = data)
DF[,3] <- as.numeric(format(DF$Time, "%m"))
colnames(DF)[3] <- "Month"
## Create subsets
Jan <- subset(DF, Month == 1)
Feb <- subset(DF, Month == 2)
Mar <- subset(DF, Month == 3)
Apr <- subset(DF, Month == 4)
## Create boxplot
months <- c("Jan", "Feb", "Mar", "Apr")
boxplot(Jan$Data, Feb$Data, Mar$Data, Apr$Data, ylab = "Data", xlab = "Months", names = months)
## Try with "split" function
DF.split <- split(DF, DF$Month)
head(DF.split)