Ошибка кластеризации Kmeans: ошибка при построении кластеров - PullRequest
0 голосов
/ 06 октября 2019

Я читаю данные из фрейма данных, который я создал ранее. Я должен выбрать несколько векторов из моего фрейма данных, чтобы выполнить эту задачу. Однако когда я масштабирую свой объект dataframe, он становится «двойным» (а не «списком», как это было).

Я могу успешно кластеризовать данные, но не могу построить их.

Но я не могу отобразить его на простом двухмерном графике, поскольку получаю следующую ошибку:

Ошибка: data должен быть фреймом данных или другим объектом, который может быть изменен с помощью fortify(), а не список

Я также пытался использовать as.list для преобразования ilpd_df2, чтобы преобразовать его обратно из "double" в "список", но он все еще не печатает.

#Task 2.1 - Load Preprocessed Data and Subset Data as directed
    ilpd_df <- readRDS(file="ilpd_preprocessed.Rda")
    ilpd_df1 <-
    select(ilpd_df,"TB","DB","Alkphos","Sgpt","Sgot","TP","Albumin")

#Task 2.2 - Re-Scaling
    ilpd_df2 <- apply(ilpd_df1, MARGIN = 2, FUN=function(X) 
    (X - min(X))/diff(range(X)))

#Task 2.3 - Cluster the Data into 2 Clusters
    set.seed(44)
    ilpd_clusters <- kmeans(ilpd_df2, 2, nstart = 25, iter.max=5)
    ggplot(ilpd_df2, aes(Alkphos, TP)) + geom_point()


Error: `data` must be a data frame, or other object coercible by `fortify()`, not a list

1 Ответ

1 голос
/ 06 октября 2019

Моя ошибка была указана мне @Elin, который предложил следующее:

1) использование dplyr :: select () приведет к ошибке. 2) Привести tibble к фрейму данных

Согласно моему собственному пониманию и руководству @ Elin, я сделал следующее:

Сменил tibble на фрейм данных

ilpd_df2 <- as.data.frame(ilpd_df2)

ЗатемЯ запустил код и сгенерировал следующий сюжет: plot generated post code

...