psych: principal – loadings components
我的问题是关于 psych 包中的 principal() 函数。
1
2 3 |
set.seed(0)
x <- replicate(8, rnorm(10)) pca.x <- principal(x, nf=4, rotate=”varimax”) |
我知道如果我想查看负载表,我可以使用 loading.x <-loadings(pca.x),然后我会得到以下结果。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
> loading.x
Loadings: RC1 RC3 RC4 RC2 [1,] -0.892 -0.205 0.123 [2,] 0.154 0.158 0.909 [3,] -0.660 0.255 -0.249 0.392 [4,] -0.352 0.412 0.614 -0.481 [5,] 0.950 -0.208 0.117 [6,] -0.302 0.111 0.860 [7,] 0.852 -0.195 -0.358 [8,] -0.109 0.903 0.265 RC1 RC3 RC4 RC2 |
我的第一个困惑是加载对象。从技术上讲,它是一个矩阵,但看它的维度,它是 8 * 4,这意味着不包括下部。
基本上,我想要实现的是单独提取这部分:
1
2 3 4 |
RC1 RC3 RC4 RC2
SS loadings 2.323 1.934 1.373 1.342 Proportion Var 0.290 0.242 0.172 0.168 Cumulative Var 0.290 0.532 0.704 0.871 |
要么把它放在 data.frame 或矩阵中,而不是在控制台中查看它。似乎威廉·雷维尔(William Revelle)在从心理包中的主要功能中提取输出作为数据框的帖子中的回答。能够单独提取这个下部,但 print 函数仍然给了我整个东西。
其实我也很好奇开发者是如何构造一个加载对象的(看源码我也搞不明白)。另外,我需要的部分在”pca.x”列表的其他地方找不到,至少不是格式化表格。
我在 Mac 上使用 Rstudio 版本 0.98.1102、R 3.1.2 和 psych 1.5.1。
提前谢谢你!
- 一个可重现的例子在这里会有所帮助。包括示例代码以创建您正在使用的对象并准确描述您想要从中提取的内容。
- William Revelle 的示例似乎仍然有效,您可以使用他回答中的 Thurstone 示例来说明您需要什么。泰
- 使用链接问题的答案:对于加载尝试 loadings(pca.x)[],对于 SS/var 等:p <- print(pca.x); p[[1]]。关于对象的问题,其中很多将由 print 方法计算/产生。看看 print.psych 函数,它会根据传递给它的对象将不同的输出打印到屏幕上(我没有全部完成)
- 这很有帮助。非常感谢你!
这部分回答了,但既然是我的包裹,我会给出一个更完整的答案。
PCA 或 FA 因子载荷表的汇总表在 print 函数中计算。它被返回(通过打印不可见)。但是,它可用作 Vaccounted 对象。
即PCA 或 FA 输出的汇总表
1
2 3 4 5 6 7 8 9 10 11 12 |
set.seed(0)
x <- replicate(8, rnorm(10)) pca.x <- principal(x, nf=4, rotate=”varimax”) p <- print(pca.x) round(p$Vaccounted,2) #shows the summary of the loadings table |
这也适用于 fa 函数。
- 非常感谢威廉。这是在小插图中解释的还是在任何地方都类似?我已经搜索了一段时间
- 我已将此添加到 psych 1. 6.12(即将推出)的文档中。
- 这也适用于我,但它的作用是打印整个内容,这在我的用例中是不需要的。如何在不打印的情况下使用 Vaccounted 对象
- 目前,这是不可能的。我会将其添加为下一个版本的请求功能。
来源:https://www.codenong.com/28635510/