【问题标题】:rPy2 slice matrixrPy2切片矩阵
【发布时间】:2017-06-13 04:24:30
【问题描述】:

我在 Python 2.7rPy2 中有这个 matrix

m = robjects.r.matrix(robjects.IntVector(range(15)), nrow=5)
print(m)
     [,1] [,2] [,3]
[1,]    0    5   10
[2,]    1    6   11
[3,]    2    7   12
[4,]    3    8   13
[5,]    4    9   14

我正在尝试从该矩阵中提取 2 个切片。在第一个切片(下面的 1.)中,我需要提取一系列行的所有列。在第二个切片(下面的 2.)中,我需要提取一系列列的所有行。

1.

我需要提取第 2-4 行的所有列:

[2,]    1    6   11
[3,]    2    7   12
[4,]    3    8   13

我试过了:

a = m.rx([2:5], True)

但它不接受 Python 列表。

2.

我需要从第 2,3 列中提取所有行:

     [,2] [,3]
[1,]    5   10
[2,]    6   11
[3,]    7   12
[4,]    8   13
[5,]    9   14

同样,我不知道如何指定列列表:

b = m.rx(True, [2:4])

不工作。

如何在rPy2 中实现矩阵m 的这些切片ab

【问题讨论】:

  • 能否使用 as.data.frame() 转换为数据框,然后使用您建议的子设置方法?
  • 我希望只使用矩阵,因为我不会使用data.frame()。矩阵足以满足我的要求。不能对矩阵进行切片吗?
  • 是的,确实如此。请改用m <- as.matrix(m)
  • 啊,谢谢。但是,我正在使用 Python。所以,我想在 Python 中对rPy2 矩阵进行切片。
  • 噢!抱歉没有仔细阅读!

标签: python r matrix rpy2


【解决方案1】:

你试过了吗?

b = m.rx(True, IntVector((2,3)))

【讨论】:

  • 叹息!不,我没有尝试过。很好的答案!谢谢。
猜你喜欢
  • 2021-06-17
  • 2011-11-28
  • 2017-07-26
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
相关资源
最近更新 更多