ここであまりにも基本的な質問をしている場合はご容赦ください (私は R の経験があまりありません)、現在 R でいくつかの自然な 3 次スプラインをプロットしようとしていて、壁にぶつかっています。
〜3500行と約30列のデータセットがあります。これは、約 270 人の異なる野球選手の全キャリアにおける 1 シーズンの野球統計のデータ セットです。つまり、基本的に、約 270 の時系列があります (各プレーヤーに 1 つ)。
wOBA と呼ばれる時間の経過に伴うプレーヤーのパフォーマンスに興味があるので、それぞれに自然な 3 次スプラインを当てはめ、すべてのスプラインを 1 つのグラフに重ねます。はい、それは自然な 3 次スプラインでなければなりません。私の知る限り、これがggplotでそれを行う唯一の方法です。
これを行うための私の現在のコードは次のとおりです。
#initialize plot
plot <- ggplot(data, aes(x=age, y=wOBA, color=playerID, group=playerID)) + theme(legend.position="none")
#loop through players to add splines
for (i in unique(data$playerID)) {
plot <- plot + stat_smooth(method = lm, formula = y~ns(x,3), data=data[which(data$playerID=="i"),list(playerID,age,wOBA)], se=FALSE)
}
いくつかの異なるプレーヤーに対してループ内でコード スニペットを手動で実行できることを確認したところ、プロットは希望どおりになりました。しかし、このループを実行しようとすると、永遠にかかります。このループが実行されているため、メモリ使用量を確認しましたが、間違いなく使い果たしました(私は4GBマシンを使用しています)。
これがなぜなのか、私は少し混乱しています。270 個のスプラインをフィッティングするだけで、R が実行時に 2 GB を超える空きメモリを完全に使い果たすとは予想していませんでした。
私はRに少し慣れていないので、何かが欠けていると確信しています。誰でもポインタを与えることができますか? これが完全に骨の折れる質問である場合は申し訳ありません!