R に data.frame があります。多くの (125) 配列からの遺伝子発現レベルなど、多くのデータが含まれています。主に R での私の無能さと、これが 30 分の仕事になるはずだったという事実のために、私は Python のデータが欲しいです。
次のコードを機能させたいと思います。このコードを理解するには、変数path
にデータ セットへのフル パスが含まれていることを知っておいてください。このデータ セットをロードすると、 という変数が得られますimmgen
。immgen
それがオブジェクト (BioconductorExpressionSet
オブジェクト) であり、exprs(immgen)
125 列 (実験) と数万行 (名前付き遺伝子) のデータ フレームを返すことを知っています。(念のため、これは Python コードで、robjects.r を使用して R コードを呼び出します)
import numpy as np
import rpy2.robjects as robjects
# ... some code to build path
robjects.r("load('%s')"%path) # loads immgen
e = robjects.r['data.frame']("exprs(immgen)")
expression_data = np.array(e)
このコードは実行されますが、expression_data
単にarray([[1]])
.
次のような理由により、e
生成されたデータフレームを表していないと確信しています。exprs()
In [40]: e._get_ncol()
Out[40]: 1
In [41]: e._get_nrow()
Out[41]: 1
しかし、もう一度誰が知っていますか?e
私のdata.frameを表していたとしても、それが配列に直接変換されないことは十分に公平です-データフレームには配列(行名と列名)よりも多くのものが含まれているため、人生はこれほど簡単ではないはずです. ただし、変換を実行する方法はまだわかりません。ドキュメントは私には少し簡潔すぎますが、ドキュメントの見出しの理解が限られているため、これが可能であることを示唆しています。
誰でも何か考えはありますか?