0

我正在尝试用因子分析绘制 PCA 图表,以显示观察组在结果维度上的位置不同。

x = data.frame(v1=c(10, 20, 5, 26, 2, 30),
           v2=c(23, 31, 34, 63, 12, 7),
           v3=c(2, 6, 1, 0, 3, 5),
           group=c("A", "B", "A", "B", "A", "B"))
result <- PCA(x[1:3])

这会产生两个图表: PCA 中的观察结果

来自因子分析的变量

我想要做的是,我不想让观察 1 到 6 单独位于第一个图中,而是让 A 组和 B 组由它们的分量观察的平均位置组成(A 的 1、3、5 , 和 2, 4, 6 用于 B)。

如果您有解决方案,非常感谢!

4

1 回答 1

1

您可以提取值并按组取平均值:

x = data.frame(v1=c(10, 20, 5, 26, 2, 30),
               v2=c(23, 31, 34, 63, 12, 7),
               v3=c(2, 6, 1, 0, 3, 5),
               group=c("A", "B", "A", "B", "A", "B"))
result <- PCA(x[1:3])
values<-as.data.frame(result$ind$coord)
values$group<-x$group
final<-aggregate(. ~ group, values, mean)

plot(final$Dim.1,final$Dim.2,xlim=c(-2.5,2.5),ylim=c(-2.5,2.5))
abline(h = 0, v = 0, col = "gray60")
text(final$Dim.1,final$Dim.2-0.09,labels = final$group)
于 2018-09-18T11:11:27.297 回答