У меня есть два набора данных.Один с измеренными концентрациями в течение нескольких дней, другой для каждой соответствующей даты, с направлением ветра.
library(ggplot2)
concentrations = data.frame(
datehour = c("2017-02-15 09:00:00", "2017-02-15 10:00:00","2017-02-15
11:00:00", "2017-02-16 09:00:00", "2017-02-16 10:00:00",
"2017-02-16 11:00:00"),
Number = c(3000, 4000, 2000, 6000, 7000, 5000),
Hour = c(9, 10, 11, 9, 10, 11))
winddir = data.frame(
Date = c("2017-02-15", "2017-02-16"),
Wind = c("S", "SW"))
Я использую цикл for, чтобы создать PDF-файл с графиком каждого дня.Это отлично работает.
Я хочу добавить основной заголовок к каждому графику с указанием даты и направления ветра соответствующего дня.Поэтому я конвертировал информационный фрейм направления ветра в два списка, чтобы использовать их в цикле for.
Я могу нормально использовать список дат, но я не знаю, как получить направление ветра для основного заголовка.
Я попытался начать с c = 1
, а затем добавить каждый цикл 1 дополнительно к c и использовать его для получения элементов из списка wind_list с paste(wind_list[c])
.Это возвращает заголовок с номером c (т. Е. «Ветер: 1», «Ветер: 2» и т. Д.) Вместо направления ветра.
#creating the lists
wind_list <- as.list(winddir$Wind)
date_list <- as.list(winddir$Date)
#function for plotting graph
plotdays <- function(){
ggplot() +
geom_line(data = concTemp, aes(x = Hour, y = Number))+
ylab("UFP concentration") + xlab("Hour") +
ggtitle(paste("Average UFP concentration per hour on", paste(i),
" Wind:", paste(wind_list[c])))
}
#the for loop for creating the graphs in 1 PDF
pdf("Test.pdf", onefile = TRUE)
c = 1
for (i in date_list){
concTemp <- subset(concentrations, grepl(i, datehour))
if (c == 1){
wind <- wind_list[c]
plotD <- plotdays()
print(plotD)
c = c+1
} else {
wind <- wind_list[c]
plotD <- plotdays()
print(plotD)
break
}
}
dev.off()
Есть предложения?