Как исправить: ошибка вplot.window(…): нужны значения файла «xlim».
Ошибка, с которой вы можете столкнуться при использовании R:
Error in plot.window(...): need finite 'xlim' values
Эта ошибка возникает, когда вы пытаетесь создать график в R и используете либо вектор символов, либо вектор только со значениями NA на оси X.
В следующих примерах показаны два разных сценария, в которых эта ошибка может возникнуть на практике.
Пример 1: Ошибка с вектором символов
Предположим, вы пытаетесь создать диаграмму рассеяния, используя следующий код:
#define data
x <- c('A', 'B', 'C', 'D', 'E', 'F')
y <- c(3, 6, 7, 8, 14, 19)
#attempt to create scatterplot
plot(x, y)
Error in plot.window(...): need finite 'xlim' values
Мы получаем ошибку, поскольку вектор, который мы использовали для значений оси X, является вектором символов.
Чтобы исправить эту ошибку, нам просто нужно указать числовой вектор по оси X:
#define two numeric vectors
x <- c(1, 2, 3, 4, 5, 6)
y <- c(3, 6, 7, 8, 14, 19)
#create scatterplot
plot(x, y)
Мы можем создать диаграмму рассеяния без каких-либо ошибок, поскольку предоставили числовой вектор для оси X.
Пример 2: Ошибка с вектором значений NA
Предположим, вы пытаетесь создать диаграмму рассеяния, используя следующий код:
#define data
x <- c(NA, NA, NA, NA, NA, NA)
y <- c(3, 6, 7, 8, 14, 19)
#attempt to create scatterplot
plot(x, y)
Error in plot.window(...): need finite 'xlim' values
Мы получаем ошибку, поскольку вектор, который мы использовали для значений оси X, представляет собой вектор, содержащий только значения NA.
Чтобы исправить эту ошибку, нам просто нужно указать числовой вектор по оси X:
#define two numeric vectors
x <- c(1, 5, 9, 13, 19, 22)
y <- c(3, 6, 7, 8, 14, 19)
#create scatterplot
plot(x, y)
И снова нам удалось создать безошибочную диаграмму рассеяния, поскольку мы использовали числовой вектор для оси X.
Дополнительные ресурсы
В следующих руководствах объясняется, как исправить другие распространенные ошибки в R:
Как исправить ошибку R: неожиданная строковая константа
Как исправить ошибку R: дискретное значение предоставляется в непрерывном масштабе
Как исправить ошибку R: аргумент не является ни числовым, ни логическим: возвращает нет