Функция 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)
Это решит сообщение об ошибке относительно факторов. Кроме того, просто убедитесь, что ваш ведущий несовершеннолетний положительно определен.