【发布时间】:2014-07-30 12:15:08
【问题描述】:
我正在使用以下代码来提取loadings 矩阵:
from rpy2.robjects import r, numpy2ri
numpy2ri.activate()
import numpy as np
A = np.random.rand(50,10)
fit = r.factanal(A, 5, rotation='promax')
load = r.loadings(fit)
哪个有效!
但是,如果我尝试对 correlation 做同样的事情
from rpy2.robjects import r, numpy2ri
numpy2ri.activate()
import numpy as np
A = np.random.rand(50,10)
fit = r.factanal(A, 5, rotation='promax')
corr = r.correlation(fit)
我得到:AttributeError: 'R' object has no attribute 'correlation'
如果 - 相反 - 我尝试:
from rpy2.robjects import r, numpy2ri
numpy2ri.activate()
import numpy as np
A = np.random.rand(50,10)
fit = r.factanal(A, 5, rotation='promax')
corr = fit.rx2('correlation')
我得到:ValueError: All parameters must be of type Sexp_Type,or Python int/long, float, bool, or None
我觉得这很奇怪,尤其是因为相关性和负载都应该是有效的。
print fit.names
给我:
['converged' 'loadings' 'uniquenesses' 'correlation' 'criteria' 'factors'
'dof' 'method' 'rotmat' 'STATISTIC' 'PVAL' 'n.obs' 'call']
【问题讨论】:
-
无法在版本 2.3.9 中复制。
corr = fit.rx2('correlation')应该可以工作。你有哪个版本的Rpy2? -
我正在使用 2.4.0 你要更新吗?你能告诉我你是否可以复制它吗?我不能轻易降级到 2.3.9,portage 只提供 2.4.0 和 2.3.10
标签: python r rpy2 factor-analysis