我正在使用 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-ish”(或者 ggplot-ish,如果你愿意的话);根据下面巴蒂斯特的评论,我在没有将任何东西重构为函数的情况下解决了这个问题;请参阅下面的答案。