python - 如何将 numpy 数组转换为 R 矩阵?

标签 python r rpy2

<分区>

如何使用 rpy2 将 numpy 数组转换为 R 矩阵?这可能是微不足道的,但我在文档中找不到好的答案。我可以通过首先将转换为 pandas 数据框作为额外步骤来实现这一点,但这似乎是多余的。

工作示例:

import numpy as np
from pandas import *
import pandas.rpy.common as com
import rpy2.robjects as ro

B=np.array([[1,2,3],[4,5,6],[7,8,9]])

Rmatrix = com.convert_to_r_matrix(B)  # Does not work

#Extra conversion via pandas dataframe
PandasDF = DataFrame(B)
Rmatrix = com.convert_to_r_matrix(PandasDF)
ro.r.assign("Bmatrix", Rmatrix)
print(ro.r["Bmatrix"])

最佳答案

这有效,基于帖子 Converting python objects for rpy2numpy to rpy2 conversion 上的 rpy2 文档:

import rpy2.robjects as ro
import rpy2.robjects.numpy2ri
rpy2.robjects.numpy2ri.activate()

nr,nc = B.shape
Br = ro.r.matrix(B, nrow=nr, ncol=nc)

ro.r.assign("B", Br)

关于python - 如何将 numpy 数组转换为 R 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27283381/

相关文章:

python - 如何为 Windows 编译 cymunk?

r - 第二列中有两个不同值的重复 ID

python - Pandas convert_to_r_dataframe 函数 KeyError

python - 从命令提示符运行 rpy2

python - 将字典转换为元组,并在元组内添加其他元素

python - 在字典上映射

python - 如何捕获扭曲延迟回调中的异常?

r - R 中的正确预处理

R:使用 dplyr 逐行计算

python - 在 Python 的 RPy2 中导入包时,如何抑制输出到控制台?