从函数返回ggplot对象

时间:2018-05-02 20:38:38

标签: r

我创建了以下函数来生成特征的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

0 个答案:

没有答案