Я пытаюсь построить много временных рядов из базы данных с 134 столбцами, по одному на столбец, и после этого сохранить его в файле .jpg. Я использую петлю. Я заметил, что проблемой может быть функция plot()
.
Некоторые данные с dput()
structure(list(X9003 = c(3L, 8L, 6L, 6L, 2L, 3L, 6L, 2L, 6L,
3L), X9004 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, 0L), X9007 = c(5L,
8L, 6L, 11L, 4L, 6L, 7L, 9L, 4L, 5L), X9009 = c(1L, 2L, 3L, 0L,
0L, 1L, 0L, 1L, 0L, 4L), X9010 = c(NA, NA, NA, NA, NA, NA, NA,
NA, 3L, 15L), X9012 = c(0L, 0L, 0L, 2L, 3L, 0L, 1L, 1L, 0L, 0L
), X9014 = c(NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_, NA_integer_, NA_integer_,
NA_integer_), X9016 = c(NA, NA, NA, NA, NA, NA, 12L, 27L, 7L,
12L), X9019 = c(3L, 8L, 27L, 38L, 19L, 27L, 25L, 47L, 5L, 3L),
X9020 = c(0L, 1L, 0L, 0L, 4L, 6L, 2L, 2L, 5L, 3L)), row.names = c(NA,
10L), class = "data.frame")
И
dput(dat_nombres[1:10,1:2])
structure(list(ESTACIONES = c(9003L, 9004L, 9007L, 9009L, 9010L,
9012L, 9014L, 9016L, 9019L, 9020L), CLAVE = c(9003L, 9004L, 9007L,
9009L, 9010L, 9012L, 9014L, 9016L, 9019L, 9020L)), row.names = c(NA,
10L), class = "data.frame")
Мой код:
data<- read.csv("GranizoAnualCompleto_1961-2019_columnas.csv", header =
TRUE)
dat_nombres<-read.csv("Nombres_Estaciones_CLICOM.csv", header=TRUE )
Estaciones<-dat_nombres$ESTACIONES # List
Estacionestmp<-data[,-1]
# Loop
for (i in seq_along (Estacionestmp)) {
serie<-ts(Estacionestmp[,i], start = 1961, frequency = 1)
mypath<-file.path("C:","00 FENIX","03 Data", "Data_Est_Select_1961-
2019", "SeriesTiempo_GranizoAnual",
paste("Ts_Granizo4_", Estaciones[i],".jpg", sep = ""))
jpeg(filename = mypath)
plot(serie,
col="darkblue",
main="Días con granizo 1961-2019 \n Estación", Estaciones[i] ,
cex.main=2,
sub=paste("Estación",Estaciones[i]),
cex.sub= 1.5,
col.main="darkred",
xlab= "Tiempo",
ylab= "Días con granizo",
cex.lab=0.8,
col.axis= "gray34",
col.lab= "gray25",
type= "l"
)
dev.off() }
Сообщение об ошибке:
Error in xy.coords(x, y, xlabel, ylabel, log) :
'x' and 'y' lengths differ
Но когда я просто кодирую plot(serie)
(без каких-либо подробностей в функции построения графика) в цикле, не возникает проблем с результатом ифайлы создаются по определенному пути, который я определил. Недавно я использовал этот код, но на кадре данных с 20 столбцами, и он работал.
Почему эти подробности в аргументе функции plot вызывают сообщение об ошибке? Как я могу исправить цикл для создания нескольких графиков временных рядов? Есть ли лучшее решение, чтобы сделать это?
Большое вам спасибо!
РЕДАКТИРОВАТЬ: я нахожу, что проблема заключается в том, что я пытаюсь изменить основной для имени и подпасту каждого графика, проблемас Estaciones[i]
;Я докажу написать #
, прежде чем комментировать его, и теперь это работает! Итак, я преобразовал его в список
Estaciones_list<-as.list(Estaciones)
и попробовал использовать этот новый список в основном для каждого графика, но он тоже не работает.
Есть предложения? Спасибо!