Одно предупреждающее сообщение, с которым вы можете столкнуться в R:
Warning message:
In min(data) : no non-missing arguments to min; returning Inf
Это предупреждающее сообщение появляется всякий раз, когда вы пытаетесь найти минимальное или максимальное значение вектора, имеющего нулевую длину.
Важно отметить, что это всего лишь предупреждающее сообщение , и оно фактически не помешает вашему коду работать.
Однако вы можете использовать один из следующих способов, чтобы полностью избежать этого предупреждающего сообщения:
Способ 1: подавить предупреждающее сообщение
suppressWarnings(min(data))
Способ 2: определение пользовательской функции для расчета минимального или максимального значения
#define custom function to calculate min
custom_min <- function (x) { if (length(x)>0) min(x) else Inf}
#use custom function to calculate min of data
custom_min(data)
В следующих примерах показано, как использовать каждый метод на практике.
Способ 1: подавить предупреждающее сообщение
Предположим, мы пытаемся использовать функцию min(), чтобы найти минимальное значение вектора с нулевой длиной:
#define vector with no values
data <- numeric(0)
#attempt to find min value of vector
min(data)
[1] Inf
Warning message:
In min(data) : no non-missing arguments to min; returning Inf
Обратите внимание, что мы получаем предупреждающее сообщение, в котором говорится, что мы попытались найти минимальное значение вектора без пропущенных аргументов.
Чтобы избежать этого предупреждающего сообщения, мы можем использовать функцию submitWarnings() :
#define vector with no values
data <- numeric(0)
#find minimum value of vector
suppressWarnings(min(data))
[1] Inf
Минимальное значение по-прежнему рассчитывается как « Inf », но на этот раз мы не получаем предупреждающего сообщения.
Способ 2: определение пользовательской функции
Другой способ избежать предупреждающего сообщения — определить пользовательскую функцию, которая вычисляет минимальное значение только в том случае, если длина вектора больше нуля, в противном случае возвращается значение « Inf »:
#define vector with no values
data <- numeric(0)
#define custom function to calculate min
custom_min <- function (x) { if (length(x)>0) min(x) else Inf}
#use custom function to calculate min
custom_min(data)
[1] Inf
Обратите внимание, что минимальное значение рассчитывается как « Inf », и мы не получаем предупреждающего сообщения.
Дополнительные ресурсы
В следующих руководствах объясняется, как устранять другие распространенные ошибки в R:
Как исправить в R: dim(X) должен иметь положительную длину
Как исправить в R: имена не совпадают с предыдущими именами
Как исправить в R: более длинная длина объекта не кратна более короткой длине объекта
Как исправить в R: контрасты могут применяться только к факторам с 2 или более уровнями