rpy2如何调用as.matrix()
rpy2 how to call as.matrix()
我正在使用 rpy2 从 python 调用一些 R 函数。 R函数returns一个dist对象。如何在结果 R 代码 returns 上从 python 调用 as.matrix()
?
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
属于 class 区。我想要一个平方距离矩阵,我可以通过在结果上调用 as.matrix()
来实现。我如何使用 rpy2 执行此操作?
我找到了一个解决方案。它不漂亮,但它有效。我们定义一个调用 as.matrix
的自定义函数
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. ]])
也可以这样做:
from rpy2.robjects.packages import importr
base = importr('base')
base.as_matrix(result)
我正在使用 rpy2 从 python 调用一些 R 函数。 R函数returns一个dist对象。如何在结果 R 代码 returns 上从 python 调用 as.matrix()
?
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
属于 class 区。我想要一个平方距离矩阵,我可以通过在结果上调用 as.matrix()
来实现。我如何使用 rpy2 执行此操作?
我找到了一个解决方案。它不漂亮,但它有效。我们定义一个调用 as.matrix
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. ]])
也可以这样做:
from rpy2.robjects.packages import importr
base = importr('base')
base.as_matrix(result)