2016-12-07 4 views
0

Привет У меня есть список из 67 объектов временных рядов, которые я хотел бы построить, а затем сохранить эти графики в виде файлов jpeg под разными именами. Вот предварительный просмотр этого списка:Построение и сохранение списка временных рядов в R

$ SE_VALUES_IMV_IN   :List of 3 
    ..$ 220830 : num [1:84] 0 0 0 0 0 0 0 0 0 0 ... 
    ..$ 22083030: num [1:84] 0 0 0 0 0 0 0 0 0 0 ... 
    ..$ 22083082: num [1:84] 0 0 0 0 0 0 0 0 0 0 ... 
    ..- attr(*, "tsp")= num [1:3] 2010 2010 12 
    ..- attr(*, "class")= chr "ts" 
$ SI_VALUES_IMV_EU28_EXTRA :List of 8 
    ..$ 220830 : num [1:84] 235549 117953 163342 214415 248162 ... 
    ..$ 22083011: num [1:84] 8026 0 0 6166 0 ... 
    ..$ 22083030: num [1:84] 0 40 0 0 0 0 0 0 0 0 ... 
    ..$ 22083041: num [1:84] 0 0 0 0 0 0 0 0 0 0 ... 
    ..$ 22083071: num [1:84] 0 0 0 0 55910 ... 
    ..$ 22083079: num [1:84] 0 0 0 0 0 0 0 0 0 0 ... 
    ..$ 22083082: num [1:84] 227523 117913 163342 207068 192252 ... 
    ..$ 22083088: num [1:84] 0 0 0 1181 0 ... 
    ..- attr(*, "tsp")= num [1:3] 2010 2011 12 
    ..- attr(*, "class")= chr "ts" 
$ SI_VALUES_IMV_EU28_INTRA :List of 12 
    ..$ 220830 : num [1:84] 218674 255317 327377 363219 335267 ... 
    ..$ 22083011: num [1:84] 9363 10129 19672 20631 10403 ... 
    ..$ 22083019: num [1:84] 0 1978 0 0 7116 ... 
    ..$ 22083030: num [1:84] 3837 15684 14588 20487 30870 ... 
    ..$ 22083041: num [1:84] 18979 5123 7176 36842 9390 ... 
    ..$ 22083049: num [1:84] 688 0 0 0 0 0 0 0 0 0 ... 
    ..$ 22083061: num [1:84] 0 0 3452 4225 96 ... 
    ..$ 22083069: num [1:84] 0 0 0 40 0 0 7520 0 0 0 ... 
    ..$ 22083071: num [1:84] 139915 204803 256095 218105 185088 ... 
    ..$ 22083079: num [1:84] 0 3219 0 0 3381 ... 
    ..$ 22083082: num [1:84] 45892 14381 26394 62889 88527 ... 
    ..$ 22083088: num [1:84] 0 0 0 0 396 0 0 0 642 105 ... 
    ..- attr(*, "tsp")= num [1:3] 2010 2011 12 
    ..- attr(*, "class")= chr "ts" 

Так что я написал функцию для построения графика (используя ts.plot()) эти элементы, применяя lapply() в мой список:

fun2 <- function(x){ 
    mypath <- file.path("C:","Users","Documents", "FI-R", "graphs", paste("multiplot-", x ,".jpeg", sep = "")) 
    jpeg(file=mypath, width = 10, height = 10, units = 'in', res = 400) 
    ts.plot(x, col = 1:ncol(x), ylab="Import Value", main=deparse(substitute(x))) 
    legend("topleft", colnames(x), col = 1:ncol(x), lty = 1) 
    dev.off()} 


Plot.Ts.whisk.lst <- lapply(Ts.whisk.lst.2, fun2) 

Это, конечно, не работает, но это показывает мои амбиции. Я попытался упростить задачу, чтобы просто запустить код ниже:

Plot.Ts.whisk.lst <- lapply(Ts.whisk.lst.2, function(x) ts.plot(x)) 

Но я получаю ошибку:

Error in xy.coords(x, NULL, log = log) : 
    (list) object cannot be coerced to type 'double' 

Я знаю, что есть проблема с моим списком временных рядов, но не могу понять, что это такое. Любая помощь приветствуется.

Благодаря

ответ

0

Я имел такую ​​же проблему с одного Ts (принуждают дважды), которая была решена с помощью. Не уверен, что он будет работать с вашим.

Попробуйте с 2 ts и запустите свой код только с этими.

ts$Value <- as.numeric(as.character(ts$Value)) 

Вы попытались построить одиночный ts?

Смежные вопросы