1

所以我一直在为我拥有的一些数据绘制散点图。我曾经能够让散点图功能工作,但现在我不能,而且我不明白我的错误是什么。我的数据看起来有 5 个值和一个将每个值分配给一个集群的列(在这种特殊情况下我使用了 k-means)。

  closedmi  uncertin  certknow  sourknow  justknow  fit3.cluster
1 3.166667  6.125     2.571429  4.500     3.375     1
2 3.666667  4.250     3.428571  4.000     4.750     2
3 1.833333  5.750     1.428571  3.375     2.125     2
4 3.500000  4.500     1.857143  4.250     3.125     3

我希望尝试使用前三个主要组件在 3 个维度上绘制我的数据并查看集群。这是我找到主成分的代码,然后将集群列附加到主成分到一个新的数据框中。

#Find the 5 principal components of the data matrix
pcdf <- princomp(pre2, cor=T, score=T)
pre4 <- data.frame(pcdf$scores, cluster=fit3$cluster)

#Making a 3D plot of the Solution
scatter3d(pre4$Comp.1, pre4$Comp.2, pre4$Comp.3, groups=pre4$cluster, 
          surface=FALSE, grid=FALSE, ellipsoid=TRUE)

所以然后尝试使用 scatter3d 来绘制使用集群列作为分组因素的个体,我最终会遇到错误。我一直在使用这个源代码来获得正确的语法,但我仍然会遇到错误。

scatter3d.default 中的错误(pre4$Comp.1,pre4$Comp.2,pre4$Comp.3,groups = pre4$cluster:groups 变量必须是一个因素

但它是。它在数据框中,我可以使用 pre4$cluster 调用该列。是否有一些我看不到的格式或语法错误?我只是要疯了吗?

上周我能够让它工作,现在我不能。我知道我可以使用 plot3d 来获得可视化效果,但我更喜欢使用 scatter3d 的可视化效果,并且希望能够使用它。

4

1 回答 1

1

尝试这个:

scatter3d(pre4$Comp.1, pre4$Comp.2, pre4$Comp.3, groups=as.factor(pre4$cluster), 
          surface=FALSE, grid=FALSE, ellipsoid=TRUE)

这将解决有关因素的错误消息。除此之外,只需确保您的主要未成年人是肯定的。

在此处输入图像描述

于 2016-05-18T19:09:23.403 回答