2017-06-13 4 views
0

matrixrPy2で、はPython 2.7です。rPy2スライスマトリックス

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番目のスライス(下の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からすべての行を抽出する必要があります。

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

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

を繰り返しますが、私は列のリストを指定する方法がわかりません

は機能しません。

これらのスライスを実現するにはmabrPy2にありますか?

+0

as.data.frame()を使用してデータフレームに変換してから、推奨されるサブ設定方法を使用できますか? – Mist

+0

私は 'data.frame()'を使用しないので、単に行列を使うことを望んでいました。私の要求には行列で十分です。行列をスライスすることはできないのですか? –

+0

はい、そうです。代わりに 'm < - as.matrix(m)'を試してください。 – Mist

答えて

1

これを試しましたか?

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

一言!いいえ、私はそれを試みませんでした。素晴らしい答え!ありがとう。 –

関連する問題