Как исправить: по крайней мере никаких непропущенных аргументов; обратная связь
Предупреждающее сообщение, которое вы можете встретить в 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 и более уровнями