1
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

我的简单代码在这里有一些问题,它有什么问题?

4

1 回答 1

2
  1. kmeans仅适用于数值矩阵。正如@thelatemail 指出的那样,第 5 列iris不是数字。
  2. 你可以使用 use cl_predictfromclue而不是predict.kmeans
于 2013-07-22T21:05:43.090 回答