Проблемы с графиком R: expr не вычисляется для объекта длины n - PullRequest
0 голосов
/ 01 июня 2019

Я хочу отобразить эту функцию в R:

enter image description here

Мой код:

   lambda <- function (i) {
    m <- 50
    j=max(1,i+m)
    n <- 27090
    ((2*m+1)^(-1))*
    for (i in j:min(n,i+m)) {
    sum (fires_2009_2015$Wi)[j]
    }
    }
    plot(lambda)

Однако, когда я запускаю код, я получаю ошибку:

"Ошибка в кривой (expr = x, from = from, to = to, xlim = xlim, ylab = ylab,: 'expr' не вычисляется для объекта длины 'n'"

1 Ответ

0 голосов
/ 01 июня 2019

Проблема в том, что plot(lambda) вызовет функцию lambda() с векторным аргументом для i, и ваше определение lambda() не будет обрабатывать это должным образом. Из-за вашего цикла for выглядит немного сложно заставить его эффективно обрабатывать векторные аргументы, но всегда есть метод грубой силы:

lambda <- Vectorize(lambda)

После этого ваш plot(lambda) должен что-то сделать. Это, вероятно, не то, что вы хотите, потому что по умолчанию он будет в диапазоне от 0 до 1, но вы можете делать такие вещи, как

plot(lambda, from = 0, to = 20)

для изменения диапазона по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...