我使用FactoMineR运行PCA,似乎无法获得Individuals因子图上标记的各个点。我的数据集(“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运行时,我得到个人因子图(PCA),其标记为1-13,而不是A谷M.变量因子图(PCA)正确标记负载N到W.
如何才能正确标记个人因子图(PCA)图上的各个点(即A到J)?
答案 0 :(得分:1)
问题是您的矩阵X
具有列名但没有行名。因此,列标签会显示在您的PCA图中,但您只需将行 indices 作为图中观察值的标识,而不是行名称。
以下是一个例子:
#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)
结果如下: