【问题标题】:NAs introduced by coercionNAs introduced by coercionError in knn由 coercion 引入的 NAs 由 knn 中的 coercionError 引入
【发布时间】: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?
  • 但是,如果您可以添加一个可重现的示例,包括加载包和模拟数据,那将非常有用。

标签: r na knn type-coercion


【解决方案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
猜你喜欢
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 2021-08-06
相关资源
最近更新 更多