考虑到我两周前开始编写代码,我觉得这将是一个快速解决方案。我试图用Python中的函数(?)运行一个统计测试—Mantel,寻找两个距离矩阵之间的相关性已经用R写了,通过Rpy2。R模块是“ade4”,它包含壁炉架“
from rpy2 import robjects
import rpy2.robjects as robjects
robjects.r('library(ade4)')
**EDIT** rmantel = robjects.r("mantel.rtest")
for i in windownA:
M1 = asmatrix(identityA[i]).reshape(14,14)
for j in windownB:
M2 = asmatrix(identityB[j]).reshape(14,14)
**EDIT** result = rmantel (M1, M2, nrepet = 9999)
print result
print ' '
编辑:这个现在起作用了!“这将返回错误:”AttributeError:'R'object没有属性'mantel',这使我认为在此处调用的对象在“.”(即“mantel”与“full”之间)处被截断壁炉架"). 我试着重新分配壁炉架作为没有“.”ex的对象 rmantel=“壁炉架" 用它代替 结果=robjects.r.rmantel(M1,M2,nrepet=9999) 只接收到错误:“AttributeError:'R'object没有属性'rmantel'—因此无法工作。我有什么想法吗?”
新问题:Mantel测试需要“dist”格式的数据,因此当我运行编辑的代码时,我得到以下错误“RRuntimeError:error in function(m1,m2,nrepet=99): 应输入“dist”类的对象“
所以我试图将文件转换成那种格式,当我打印结果时,它是一个大小正确的矩阵的下半部分,但所有字段都用“NA”填充
^{pr2}$我得到了“
1 2 3 4 5 6 7 8 9 10 11 12 13
2不适用
3不适用
4不适用不适用
5不,不,不
6不,不,不,不
7不,不,不,不
8不,不,不,不
9不,不,不,不,不
10纳纳那那那那那那那那
11不,不,不,不,不
12纳纳那那那那那那那那那
13娜娜娜娜娜娜娜娜娜娜娜娜娜娜
14纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳纳
尝试
robjects.r['mantel.rtest']
:这也适用于:
^{pr2}$编辑(针对新版本): 既然您说}应该是{}格式。但是}似乎是numpy数组。另一方面,}看起来可能是
mantel.rtest
需要dist
格式的数据,我想M1
和{M1
和{MOne
和{dist
格式。在所以也许可以试试
从rpy2-2.1.x中,推荐的简单方法是:
相关问题 更多 >
编程相关推荐