【问题标题】:k-means analysis: how to convert data into numeric?k-means 分析:如何将数据转换为数值?
【发布时间】:2020-06-01 06:25:23
【问题描述】:

我想在 R 中执行 k-means 分析。为此,我需要数字数据。我尝试了以下

unlist(pca)
as.numeric(pca)

lapply(pca,as.numeric(pca))

pca 只是“正常”的主成分分析数据,显示在图中(使用 fviz_pca_ind() 函数)。

顺便说一句,当我尝试运行 k-means 分析时,它给了我“列表对象不能被强制输入 double”。这就是为什么我想把所有东西都变成数字。

如何将 pca-data 转换为数值?

谢谢;)

【问题讨论】:

  • 请提供一个可重现的最小示例。真的不清楚这里发生了什么。

标签: r k-means


【解决方案1】:

你几乎是对的

lapply(pca,as.numeric)

as.numeric 是一个函数,因此也是一个对象。您需要将其作为对象传递给lapply(),因此不带引号。

【讨论】:

  • 谢谢,但它显示:lapply 中的错误(pca_individ_cafru, as.numeric) : 'list' object cannot be coerced to type 'double'
  • 是的,我已经预料到了这个回复。如果您希望我们帮助您,请使用 dput(pca) 发布您的数据 - 这意味着如果这不是很大。
【解决方案2】:

大多数 pca 对象应该返回一个列表,并且您应该显示用于执行 pca 的包或函数,以便我们可以看到列表中的内容

例如,如果您使用prcomp,它会返回特征向量/载荷 ($rotation) 和主成分 ($x) 的列表。我想你正在尝试在主要组件上做 k-means,你可以这样做:

# perform pca
pca = prcomp(USArrests,scale=TRUE)
# we call out the PCs using pca$x
# and kmeans
kmeans_clus = kmeans(pca$x,3)
## plot 
# define colors
COLS = c("#65587f","#f18867","#e85f99")
plot(pca$x[,1:2],col=COLS[kmeans_clus$cluster],pch=20)
legend("topright",fill=COLS,legend=1:3,horiz=TRUE)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 2020-11-09
    • 2018-09-26
    • 2019-08-29
    • 1970-01-01
    • 2013-02-07
    相关资源
    最近更新 更多