-1

我正在使用 FactoMineR 运行 PCA,并且似乎无法在个人因子图上标记各个点。我的数据集(“ExData.csv”)包含一个矩阵中的值,该矩阵有 13 行(标记为 A 到 M)和 10 列(标记为 N 到 W)。我正在运行以下内容:

mydata <- read.csv("ExData.csv",header=TRUE,row.names=1)
attach(mydata)

library(FactoMineR)
X <- cbind(N,O,P,Q,R,S,T,U,V,W)
res.pca <- PCA(X)

当 PCA 运行时,我得到带有标记为 1-13 的点的个体因子图 (PCA),而不是 A 槽 M。变量因子图 (PCA) 正确地标记了载荷 N 到 W。

如何正确标记个人因子图 (PCA) 图上的各个点(即 A 到 J)?

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

1

问题是您的矩阵X有列名但没有行名。因此,列标签出现在您的 PCA 图中,但您只需获取行索引作为图中观察值的标识,而不是行名称。

这是一个例子:

#install.packages("FactoMineR")
library(FactoMineR)
set.seed(1)

df <- data.frame(matrix(runif(13 * 10),
                        nrow = 13,
                        ncol = 10,
                        dimnames = list(LETTERS[1:13], LETTERS[14:23])))

attach(df)
X <- cbind(N, O, P, Q, R, S, T, U, V, W)

此时rownames(X)NULL并且PCA(X)只能使用行索引来识别其图中的观察值。

要解决此问题,只需将行名称添加到X传递给的矩阵中PCA()

# restore row names
rownames(X) <- rownames(df)   # or something similar in your actual program
res.pca <- PCA(X)

结果如下所示:

在此处输入图像描述 在此处输入图像描述

于 2015-10-05T19:12:37.053 回答