Функция 3D Scatterplot в R с группами

Так что я работал над точечной диаграммой для некоторых данных, которые у меня есть. Раньше я мог заставить работать функцию точечного графика, но теперь не могу и не понимаю, в чем моя ошибка. Мои данные имеют 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

Я пытаюсь построить данные в трех измерениях, используя первые три основных компонента, и увидеть кластеры. Вот мой код, чтобы найти основные компоненты, а затем прикрепить столбец кластера к основным компонентам в новый фрейм данных.

#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)

Итак, попробуйте использовать scatter3 d, чтобы построить людей, использующих столбец кластера в качестве фактора группировки, и я получаю ошибку. Я использовал этот источник для кода, чтобы получить правильный синтаксис, но я все равно получаю ошибку.

Ошибка в scatter3d.default(pre4$Comp.1, pre4$Comp.2, pre4$Comp.3, groups = pre4$cluster: переменная groups должна быть фактором

но это. Он находится во фрейме данных, я могу вызвать столбец, используя pre4$cluster. Есть какая-то ошибка форматирования или синтаксиса, которую я не вижу? Я просто схожу с ума?

Я смог заставить это работать только на прошлой неделе, а теперь я не могу. Я знаю, что могу использовать plot3 d для получения визуализации, но мне больше нравится визуализация с использованием scatter3 d, и я хотел бы иметь возможность использовать ее.

1 ответ

Попробуй это:

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

Это решит сообщение об ошибке относительно факторов. Кроме того, просто убедитесь, что ваш ведущий несовершеннолетний положительно определен.

Другие вопросы по тегам