Возврат объекта ggplot из функции - PullRequest
0 голосов
/ 02 мая 2018

Я создал следующую функцию, чтобы сгенерировать график 2D-проекции объектов на ПК при отображении кластеров 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...