長い形式で繰り返し測定された大きなデータフレームがあります (41764 観測)。データフレームを要約し、異なる個人ごとに 1 つの値を持つ新しいデータフレームを作成しようとしています (合計 3112 の観測値)。私はddplyサマライズを使用していますが、私の特定のケースの背景は、繰り返し測定の最初と最後の値に違いがある新しいデータフレームにありますか? .
私はこのコードを使用しています
df2 <- ddply(df1, .(indv), summarize, df1['value1'], df1['value2'])
しかし、これを実行すると、このエラーが発生します
Error: cannot allocate vector of size 991.6 Mb
In addition: Warning messages:
1: In output[[var]][rng] <- df[[var]] :
Reached total allocation of 8088Mb: see help(memory.size)
2: In output[[var]][rng] <- df[[var]] :
Reached total allocation of 8088Mb: see help(memory.size)
3: In output[[var]][rng] <- df[[var]] :
Reached total allocation of 8088Mb: see help(memory.size)
4: In output[[var]][rng] <- df[[var]] :
Reached total allocation of 8088Mb: see help(memory.size)
これを回避する方法がわかりません。すべてのメモリ常駐データフレームをファイルとして保存し、R を閉じてから、これらを R にインポートし直しました。これにより、少なくとも最初はメモリが節約されるようですが、ddply を実行するとまだ RAM が不足しています
このマシンには 8 GB の RAM があり、これらすべてを R で使用できます。この問題に対処するために何ができるか知っている人はいますか?
おそらく、ddply の要約を使用するべきではありません。これを行うためのより良い方法があるでしょうか?
編集:コマンドを間違って発行していたようです。みたいなコマンド
df2 <- ddply(df1, .(indv), summarize, value1=(tail(value1, 1)), value2=(tail(value2, 1)), group=(tail(group, 1)))
私が探している結果が得られるようです。