R 获得;PC1“;主成分分析中变量名的替代

R 获得;PC1“;主成分分析中变量名的替代,r,pca,psych,R,Pca,Psych,我有一些数据如下所示: head(data) net1re net2re net3re net4re net5re net6re 24 3 2 1 2 3 3 33 1 1 1 1 1 2 30 3 1 1 1 1 3 22 2 1 1 1 1 1 31

我有一些数据如下所示:

head(data)
   net1re net2re net3re net4re net5re net6re
24      3      2      1      2      3      3
33      1      1      1      1      1      2
30      3      1      1      1      1      3
22      2      1      1      1      1      1
31      3      2      1      1      1      2
1       2      1      1      1      1      2
我正在进行主成分分析,如下所示:

library(psych)
fit <- principal(data[,1:6], rotate="varimax")
data$friendship=fit$scores
但当我想查看数据时,我得到的不是变量名“PC1”:

这成了一个大麻烦,因为我需要用不同的变量重复这一点,所有的结果都是“PC1”

为什么会发生这种情况?我如何分配变量名而不是“PC1”


谢谢

出现这种不寻常的效果是因为
fit$scores
是一个矩阵:

str(data)
#'data.frame':  6 obs. of  7 variables:
# $ net1re    : int  3 1 3 2 3 2
# $ net2re    : int  2 1 1 1 2 1
# $ net3re    : int  1 1 1 1 1 1
# $ net4re    : int  2 1 1 1 1 1
# $ net5re    : int  3 1 1 1 1 1
# $ net6re    : int  3 2 3 1 2 2
# $ friendship: num [1:6, 1] 1.1664 -1.261 0.0946 -0.5832 1.1664 ...
#  ..- attr(*, "dimnames")=List of 2
#  .. ..$ : chr  "24" "33" "30" "22" ...
#  .. ..$ : chr "PC1"
要获得所需的结果,可以使用

data$friendship=as.vector(fit$scores)

在任何一种情况下,输出都将是:

data
#   net1re net2re net3re net4re net5re net6re  friendship
#24      3      2      1      2      3      3  1.16635312
#33      1      1      1      1      1      2 -1.26098965
#30      3      1      1      1      1      3  0.09463653

str(data)
#'data.frame':  6 obs. of  7 variables:
# $ net1re    : int  3 1 3 2 3 2
# $ net2re    : int  2 1 1 1 2 1
# $ net3re    : int  1 1 1 1 1 1
# $ net4re    : int  2 1 1 1 1 1
# $ net5re    : int  3 1 1 1 1 1
# $ net6re    : int  3 2 3 1 2 2
# $ friendship: num  1.1664 -1.261 0.0946 -0.5832 1.1664 ...
data$friendship=as.vector(fit$scores)
data$friendship=fit$scores[,1]
data
#   net1re net2re net3re net4re net5re net6re  friendship
#24      3      2      1      2      3      3  1.16635312
#33      1      1      1      1      1      2 -1.26098965
#30      3      1      1      1      1      3  0.09463653

str(data)
#'data.frame':  6 obs. of  7 variables:
# $ net1re    : int  3 1 3 2 3 2
# $ net2re    : int  2 1 1 1 2 1
# $ net3re    : int  1 1 1 1 1 1
# $ net4re    : int  2 1 1 1 1 1
# $ net5re    : int  3 1 1 1 1 1
# $ net6re    : int  3 2 3 1 2 2
# $ friendship: num  1.1664 -1.261 0.0946 -0.5832 1.1664 ...