Rとggplot2を使用して、バスケットボールの試合の統計を分析しています。私はRとggplotを初めて使用しますが、経験が限られているため、得られる結果が気に入っています。しかし、私が進むにつれて、私のコードが繰り返されることに気づきます。嫌いです。
私はこれに似たいくつかのプロットを作成しました:
コード:
efgPlot <- ggplot(gmStats, aes(EFGpct, Nrtg)) +
stat_smooth(method = "lm") +
geom_point(aes(colour=plg_ShortName, shape=plg_ShortName)) +
scale_shape_manual(values=as.numeric(gmStats$plg_ShortName))
プロット間の違いはx値だけです。次のプロットは次のようになります。
orPlot <- ggplot(gmStats, aes(ORpct, Nrtg)) +
stat_smooth(method = "lm") + ... # from here all is the same
次のようなことができるように、これをどのようにリファクタリングできますか?
efgPlot <- getPlot(gmStats, EFGpct, Nrtg))
orPlot <- getPlot(gmStats, ORpct, Nrtg))
アップデート
これをリファクタリングする私の方法は、実際には「Rっぽい」(または、必要に応じてggplotっぽい)ではないと思います。以下のbaptisteのコメントに基づいて、関数にリファクタリングすることなくこれを解決しました。以下の私の答えを参照してください。