如何解决:至少没有非缺失参数;反馈


您在 R 中可能遇到的警告消息是:

 Warning message:
In min(data): no non-missing arguments to min; returning Inf 

每当您尝试查找零长度向量的最小值或最大值时,都会出现此警告消息。

需要注意的是,这只是一条警告消息,实际上并不会阻止您的代码运行。

但是,您可以使用以下方法之一来完全避免此警告消息:

方法一:删除警告信息

 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)

以下示例展示了如何在实践中使用每种方法。

方法一:删除警告信息

假设我们尝试使用 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

请注意,我们收到一条警告消息,告诉我们我们试图在没有任何非缺失参数的情况下找到向量的最小值。

为了避免出现此警告消息,我们可以使用suppressWarnings()函数:

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

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

[1] Lower

最小值仍然计算为“ Inf ”,但这次我们没有收到任何警告消息。

方法二:定义自定义函数

避免警告消息的另一种方法是定义一个自定义函数,仅当向量的长度大于零时才计算最小值,否则返回“ 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 个或更多级别的因子

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注