2017-06-13 110 views
0

我有這個matrixrPy2Python 2.7rPy2切片矩陣

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]) 

不起作用。

我怎樣才能實現這些切片a和矩陣mrPy2b

+0

您可以使用as.data.frame()轉換爲數據框,然後使用您建議的子設置方法嗎? – Mist

+0

我希望只是使用矩陣,因爲我不會使用'data.frame()'。矩陣足以滿足我的要求。切片矩陣不可能嗎? –

+0

是的,它的確如此。試試'm < - as.matrix(m)'。 – Mist

回答

1

你試過這個嗎?

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

感嘆!不,我沒有嘗試過。很好的答案!謝謝。 –