我创建了以下函数来生成特征的2D PC投影图,同时显示kmeans集群:
plot_kmeans_pc <- function(feature_matrix, k, pc) {
matrix_name <- deparse(substitute(feature_matrix)) # name of input variable
pclusters <- kmeans(feature_matrix, k, nstart=100, iter.max=100)
groups <- pclusters$cluster
projected <- predict(pc, newdata=feature_matrix)[,1:2] # project data onto two principle comps
projected_df <- cbind(as.data.frame(projected),
cluster=as.factor(groups))
p <- ggplot(projected_df, aes(x = PC1, y = PC2, colour = groups)) +
geom_point() +
ggtitle(matrix_name)
return(p)
}
函数运行并正常返回。但是,当我尝试绘制返回的图时,我得到一个错误,例如
> p1clust2 <- plot_kmeans_pc(data, 2, data_pc)
> p1clust2
Error in eval(expr, envir, enclos) : object 'groups' not found