Как исправить: нет непропущенных аргументов для min; возвращающая информация


Одно предупреждающее сообщение, с которым вы можете столкнуться в 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 или более уровнями

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.