km <- kmeans(iris,3)
predict.kmeans <-
function(km, data)
{k <- nrow(km$centers)
n <- nrow(data)
d <- as.matrix(dist(rbind(km$centers, data)))[-(1:k),1:k]
out <- apply(d, 1, which.min)
return(out)}
predict.kmeans(km,iris[1,])
# Error:apply(d, 1, which.min) : dim(X) must have a positive length
我的简单代码有一些问题,这是怎么回事?
最佳答案
kmeans
仅适用于数值矩阵。正如 @thelatemail 指出的,iris
的第 5 列不是数字。- 您可以使用
clue
中的cl_predict
而不是predict.kmeans
关于r - 使用 R 进行 kmeans 预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17780978/