R Markdown 中未显示大型时间序列的几个图
Several plots of large time series not displaying in R Markdown
我有一个包含 16 个独立时间序列的大型数据集。我想将它们绘制在 3x7 网格中,顶行是每个以 IN 结尾的时间序列,底行是每个以 OUT 结尾的时间序列。在中间一行,我将重复与每对 IN/OUT 对对应的以 RN 结尾的两个时间序列中的每一个。我在早期 , but still cannot get R Studio to output my plots. Any wisdom or guidance would be appreciated. Here are my dataset 和代码中获得了编写脚本的帮助:
title: "Data Report"
author: "Dr.Vini42"
date: "February 17, 2016"
output: word_document
---
```{r, echo=FALSE}
library(ggplot2)
numbers <- read.csv("./AllData.csv", header=TRUE)
num <- (ncol(numbers) - 4)/4*3 #converts 36 columns to 24 plots involving 8 timeseries
par(mfrow=c(3,7))
for(i in 1:num){
if (i < 8) {
qplot(as.Date(numbers[[4*i+1]],"%m/%d/%Y %H:%M"), numbers[[4*i+2]], xlab="Date", ylab="Feet", main=names(numbers)[4*i+2])
} else if (i < 15) {
qplot(as.Date(numbers[[4*i-6]],"%m/%d/%Y %H:%M"), numbers[[4*i-5]], xlab="Date", ylab="Feet", main=names(numbers)[4*i-5])
} else {
qplot(as.Date(numbers[[4*i-13]],"%m/%d/%Y %H:%M"), numbers[[4*i-12]], xlab="Date", ylab="Feet", main=names(numbers)[4*i-12])
}
}
```
在 knitr
的 for( )
循环中,您需要将绘图放在 print( )
语句中
循环外 knitr
识别它需要打印并为您完成。在循环内部它没有。
```{r}
...
par(mfrow=c(3,7))
for(i in 1:num){
if (i < 8) {
print( qplot(as.Date(numbers[[4*i+1]],"%m/%d/%Y %H:%M"), numbers[[4*i+2]], xlab="Date", ylab="Feet", main=names(numbers)[4*i+2]) )
} else {
...
}
}
```
更新
我通常不会下载整个文件来测试代码,但是,我破例了...
要查看您的问题,运行 这些行
i <- 1
as.Date(numbers[[4*i+2]],"%m/%d/%Y %H:%M") ## this should error
numbers[[6]] ## this shows you the data
您正在尝试将 numbers[[6]]
(第 6 列)中的数据转换为 mm/dd/yyyy hh:mm
格式的日期,但这些值只是小数,因此无法转换进入日期。
我有一个包含 16 个独立时间序列的大型数据集。我想将它们绘制在 3x7 网格中,顶行是每个以 IN 结尾的时间序列,底行是每个以 OUT 结尾的时间序列。在中间一行,我将重复与每对 IN/OUT 对对应的以 RN 结尾的两个时间序列中的每一个。我在早期
title: "Data Report"
author: "Dr.Vini42"
date: "February 17, 2016"
output: word_document
---
```{r, echo=FALSE}
library(ggplot2)
numbers <- read.csv("./AllData.csv", header=TRUE)
num <- (ncol(numbers) - 4)/4*3 #converts 36 columns to 24 plots involving 8 timeseries
par(mfrow=c(3,7))
for(i in 1:num){
if (i < 8) {
qplot(as.Date(numbers[[4*i+1]],"%m/%d/%Y %H:%M"), numbers[[4*i+2]], xlab="Date", ylab="Feet", main=names(numbers)[4*i+2])
} else if (i < 15) {
qplot(as.Date(numbers[[4*i-6]],"%m/%d/%Y %H:%M"), numbers[[4*i-5]], xlab="Date", ylab="Feet", main=names(numbers)[4*i-5])
} else {
qplot(as.Date(numbers[[4*i-13]],"%m/%d/%Y %H:%M"), numbers[[4*i-12]], xlab="Date", ylab="Feet", main=names(numbers)[4*i-12])
}
}
```
在 knitr
的 for( )
循环中,您需要将绘图放在 print( )
语句中
循环外 knitr
识别它需要打印并为您完成。在循环内部它没有。
```{r}
...
par(mfrow=c(3,7))
for(i in 1:num){
if (i < 8) {
print( qplot(as.Date(numbers[[4*i+1]],"%m/%d/%Y %H:%M"), numbers[[4*i+2]], xlab="Date", ylab="Feet", main=names(numbers)[4*i+2]) )
} else {
...
}
}
```
更新
我通常不会下载整个文件来测试代码,但是,我破例了...
要查看您的问题,运行 这些行
i <- 1
as.Date(numbers[[4*i+2]],"%m/%d/%Y %H:%M") ## this should error
numbers[[6]] ## this shows you the data
您正在尝试将 numbers[[6]]
(第 6 列)中的数据转换为 mm/dd/yyyy hh:mm
格式的日期,但这些值只是小数,因此无法转换进入日期。