Как исправить: по крайней мере никаких непропущенных аргументов; обратная связь


Предупреждающее сообщение, которое вы можете встретить в 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] Lower
Warning message:
In min(data): no non-missing arguments to min; returning Inf

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

Чтобы избежать этого предупреждающего сообщения, мы можем использовать функцию подавленияWarnings() :

 #define vector with no values
data <- numeric(0)

#find minimum value of vector
suppressWarnings(min(data))

[1] Lower

Минимальное значение по-прежнему рассчитывается как « 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] Lower

Обратите внимание, что минимальное значение рассчитывается как « Inf », и мы не получаем никаких предупреждающих сообщений.

Дополнительные ресурсы

В следующих руководствах объясняется, как устранить другие распространенные ошибки в R:

Как исправить в R: dim(X) должен иметь положительную длину
Как исправить в R: Имена не совпадают с предыдущими именами
Как исправить в R: длина более длинного объекта не кратна длине более короткого объекта
Как исправить в R: контрасты можно применять только к факторам с 2 и более уровнями

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *