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 ...