由 coercion 引入的 NAs 由 knn 中的 coercionError 引入
Posted
技术标签:
【中文标题】由 coercion 引入的 NAs 由 knn 中的 coercionError 引入【英文标题】:NAs introduced by coercionNAs introduced by coercionError in knn 【发布时间】:2021-06-02 14:04:36 【问题描述】:当我执行这段代码时,我得到了关于 coercionNAs 的下一个错误:
data_test_pred <- knn(train = data_train, test = data_test,
cl = data_train_labels, k = 9)
NAs introduced by coercionNAs introduced by coercionError in knn(train = data_train, test = data_test, cl = data_train_labels, :
NA/NaN/Inf in foreign function call (arg 6)
data_train_labels的变量是两个Levels
Factor w/ 2 levels "Prom","No prom": 1 1 1 1 1 1 1 1
【问题讨论】:
通常NAs introduced by coercion
是在函数需要数据类型但您输入另一个数据类型时给出的警告。在这种情况下,标签可能应该是character
?
但是,如果您可以添加一个可重现的示例,包括加载包和模拟数据,那将非常有用。
你看过这篇文章了吗? ***.com/questions/16874038/error-with-knn-function
【参考方案1】:
在这种情况下,我猜这是由于字符变量转换为数字造成的。
通过将字符转换为数字,您将获得 NA。 您应该将字符变量设置为因子,然后设置为数值变量。
在这里学习:
I get the error NAs introduced by coercionNAs when trying to run kNN in R?
否则请张贴您的数据头。
【讨论】:
感谢您的回答,但是当我更改 numeric 的值时,我得到:Prom → 1 No Prom → 2 但我想得到:Prom → 1 No Prom → 0以上是关于由 coercion 引入的 NAs 由 knn 中的 coercionError 引入的主要内容,如果未能解决你的问题,请参考以下文章