为查找簇而编写的 R 代码中的一个错误

an error in R code written for finding clusters

我对 R 比较陌生。我只是尝试使用以下方法找出鸢尾花数据的最佳聚类数:

library(datasets)
head(iris)

# method1:
wss <- (nrow(iris)-1)*sum(apply(iris,2,var))
  for (i in 2:3) wss[i] <- sum(kmeans(iris,                           centers=i)$withinss)
plot(1:3, wss, type="b", xlab="Number of Clusters",ylab="Within groups sum of squares")

# method2:
library(fpc)
pamk.best <- pamk(iris)
cat("number of clusters estimated by optimum average silhouette width:", pamk.best$nc, "\n")
plot(pam(iris, pamk.best$nc))

两种方法都会抛出错误。所以请有人阐明它。非常感谢。

apply(iris,2,var)

给你一个错误,因为第 4 列不是数字。 尝试 apply(iris[,1:4],2,var)

第二种方法同理。

Error in pam(sdata, k, diss = diss, ...) : 
  x is not a numeric dataframe or matrix.