Ruby スクリプトが TCP/IP 経由で R と通信できるようにする rserve-client gem を使用しています。その一環として、Ruby オブジェクトをシリアル化してネットワーク経由で送信し、返された結果を Ruby に透過的に変換します。
しかし、返された配列オブジェクトには、R テーブルが Ruby に変換されたときに、これまでに見たことのない奇妙な表記法が関連付けられています。
たとえば、名前付きの id 列と 3 つの値を持つ R テーブルは次を返します。
res
=> [|WN|"id"=[1,
2,
3]
res.to_s
=> "[id=[1, 2, 3]]"
res.class
=> Array
res.inspect
=> "#<Array:70227288405140 [id=[1, 2, 3]]>"
res.class.ancestors == Array.ancestors
=> true
=> [[1,
2,
3]]
これが何か分かりますか?理想的には、IDを使用するためにハッシュに変換したいと思います...to_hashはそれを取得しません。.to_a の結果: