#r #plot #error-handling #curve
#r #график #обработка ошибок #кривая
Вопрос:
Я хотел построить следующую фрагментарную функцию, однако я продолжаю получать ошибку
a <- function(x) {ifelse(( x < -1), 0, ifelse((-1 < x amp; x < 2),(x^3 1)/9, ifelse((x > 2), 1, NA))) }
plot(a, xlim=c(-5, 5), ylim = c(-4, 7), col = "red")
abline(v = 0, h = 0)
Комментарии:
1. Вы имели в виду
x <=1
? Илиx < -1
? Вероятно, вы получаете эту ошибку, потому<-
что имеет значение в R как оператор присваивания.
Ответ №1:
Ваш код почти правильный, но добавление пробелов для удобства чтения поможет. Ошибка возникает, как упоминает @Phil, потому x<-1
что интерпретируется R как «присвоить значение 1 x». Вы используете версию команды plot для построения графиков функций, которая задокументирована с curve
помощью функции (см. ?curve
). Вероятно, вам следует включить аргументы from=
и to=
, но функция будет использовать значения xlim без них:
a <- function(x){ ifelse(( x < -1), 0, ifelse((-1 < x amp; x < 2),(x^3 1)/9, ifelse((x > 2), 1, NA))) }
plot(a, from=-5, to=5, n=201, xlim=c(-5, 5), ylim = c(-4, 7), col = "red")
abline(v = 0, h = 0, lty=3)
Обратите внимание на дополнение к вашей plot()
команде. Я изменил abline
использование пунктирной линии, что облегчает просмотр функции. Добавление n=201
увеличивает количество точек в линии, поэтому кривая становится более гладкой, а разрыв между сегментами меньше.