为查找簇而编写的 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.
我对 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.