2017-08-02 8 views
0

私は、Sample_ID変数と値変数の2つの列からなるdata.frame inを持っています。各サンプル(そのうちの1971年)には132の個所があります。オブジェクト全体は約3000000バイト、つまり約0.003ギガバイト(object.size()による)です。何らかの理由で、オブジェクトをワイドフォーマットにキャストしようとすると、元のオブジェクトより3桁大きいサイズのベクトルを割り当てることができないというエラーがスローされます。dcastオブジェクトは元のオブジェクトよりも大きいオーダー

私が期待している出力は、各サンプルに対して1列、各列に132行のデータがあります。

私が使用していますdcastコードは以下の通りです:私は、再現のためのデータセットを提供する

df_dcast = dcast(df, value.var = "Vals", Vals~Sample_ID) 

しかし、この問題は、オブジェクトのサイズに関係していますので、私はそれのサブセットが役立つだろうとは思いません完全なデータセットを簡単に投稿する方法がわかりません。完全なデータセットを投稿する方法やサブセットが役立つと思われる場合は、教えてください。

ありがとうございました

+0

は、スパース行列を見て価値があるかもしれない3つの列があります。 –

+0

@RichardTelford私の最初の見解では、データにゼロがほとんどなく、データにゼロが全くない場合、余分な行列の効率が悪いと思われるので、効率が悪いと思いますか?しかし、まったく同じデータを持つワイドオブジェクトが長いオブジェクトよりもはるかに大きくなるべき理由を考えることができないため、ここで何か他のことが起こっているように感じます。私の前提は、私​​が使用しているdcastコードは、私がやりたいこと以外の何かをしていることです。完了する前に投げてエラーが出ているので、私はそれを伝えることができません。私は今、それをサブセットで試して、それが何をしているのか見ていきます。 –

答えて

0

私は間違っていたことを理解しました。 Vals列の各ユニークな値を、私が望む132よりはるかに多くの行を生成する個々の行として使用しようとしていたので、基本的に1:132からなる値インデックスであった新しい列を追加する必要がありました。 ID、ヴァルス、ValsNumber

dcastコードは、次のようになります:

df_wide = dcast(df, value.var = "Vals", ValsNumber ~ Sample_ID) 
関連する問題