【发布时间】:2020-02-04 00:30:55
【问题描述】:
我正在从之前创建的数据帧中读取数据。我必须从我的数据框中选择一些向量来完成这项任务。但是,当我重新调整我的数据框对象时,它变成了“双”(而不是“列表”)。
我可以成功地对数据进行聚类,但我无法绘制它。
但我无法在简单的 2D 图中绘制它,因为我收到以下错误:
错误:data 必须是数据框,或其他可被fortify() 强制转换的对象,而不是列表
我也尝试使用 as.list 来转换 ilpd_df2 以将其从“double”转换回“list”,但它仍然没有绘图。
#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
【问题讨论】:
-
ggplot(data = ilpd_df2) + geom_point(aes(Alkphos, TP, color = ilpd_clusters$clusters)) -
看起来您正在使用 dplyr::select()。这将产生一个 tibble 而不是数据框,因此您需要将其强制转换为数据框。
-
嗨@Dij,我试过你的,但它不起作用=(
-
嗨@Elin,哦,好吧,因为我对 R 比较陌生,所以我不知道 tibbles。
-
@Elin,所以我将它强制转换为数据框,它可以工作!我做了以下 ilpd_df2
标签: r cluster-analysis data-mining k-means