首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rpy2如何调用as.matrix()

rpy2如何调用as.matrix()
EN

Stack Overflow用户
提问于 2018-11-21 18:54:12
回答 2查看 469关注 0票数 3

我使用rpy2从python调用一些R函数。R函数返回一个dist对象。如何在R代码返回的结果上从python调用as.matrix()

代码语言:javascript
复制
import rpy2.robjects.numpy2ri
from rpy2.robjects.packages import importr
rpy2.robjects.numpy2ri.activate()
Rsession = rpy2.robjects.r
tsclust = importr('TSclust')

X= np.random.random((5,5))
result = Rsession.diss( X , "ACF", p=0.05)

result属于dist类。我想要一个平方距离矩阵,我可以通过调用结果的as.matrix()来实现这个矩阵。我如何在rpy2中做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-29 12:28:05

这样做是有可能的:

代码语言:javascript
复制
from rpy2.robjects.packages import importr

base = importr('base')
base.as_matrix(result)
票数 2
EN

Stack Overflow用户

发布于 2018-11-21 19:05:56

我想出了一个解决办法。它不漂亮,但很管用。我们定义了一个调用as.matrix的自定义函数

代码语言:javascript
复制
from rpy2.robjects.packages import STAP
mfunc = 'myasmatrix <- function(dobj){return(as.matrix(dobj))}'
myasmatrix = STAP(mfunc, "myasmatrix")

np.array(myasmatrix.myasmatrix(rres))
>>> array([[0.        , 0.0663193 , 0.01159857, 0.14378692, 0.10069314],
   [0.0663193 , 0.        , 0.06064907, 0.07965314, 0.03511945],
   [0.01159857, 0.06064907, 0.        , 0.13898505, 0.095319  ],
   [0.14378692, 0.07965314, 0.13898505, 0.        , 0.04757353],
   [0.10069314, 0.03511945, 0.095319  , 0.04757353, 0.        ]])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53418818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档