082009

段时间在论坛上发了一个帖子征求美化R代码的解决方案,小邱同学不辞辛劳写了一个tidy.source()的改进版本,而昨日他突然灵光乍现(大家快出来看上帝!),想到一个绝妙的解决方案,令我心中好一阵欣喜。哇哈哈哈!

总结起来就是这么一句话:以R之道,还施彼身。

我们来看看效果;整容前:

# 画个渐变多边形
y=0.1+runif(20,0.2,1)
xx=c(1,1:20,20);yy=c(0,y,0)
plot(xx,yy,type="n",xlab="x",ylab="y")
# 多边形的高越来越小,颜色越来越红
for(i in 255:0){
yy=c(0,y-(1-i/255)*min(y),0);polygon(xx,yy,col=rgb(1,i/255,0),border=NA)
# 停一会儿看看清楚
Sys.sleep(0.05)           }

整容后:

# 画个渐变多边形
y = 0.1 + runif(20, 0.2, 1)
xx = c(1, 1:20, 20)
yy = c(0, y, 0)
plot(xx, yy, type = "n", xlab = "x", ylab = "y")
# 多边形的高越来越小,颜色越来越红
for (i in 255:0) {
    yy = c(0, y - (1 - i/255) * min(y), 0)
    polygon(xx, yy, col = rgb(1, i/255, 0), border = NA)
    # 停一会儿看看清楚
    Sys.sleep(0.05)
}

爷还想看:

3 Responses to “以其人之道”

Comments (3)
  1. myli 说:

    请原谅我的无知,这整容前后不是一样的吗?

    • 谢益辉 说:

      “整容”嘛,就是整理形式,代码确实没有变化,只是把该加上的空格和缩进都加上,还有换行什么的,全都整理得整齐可读。读代码那是多么痛苦的事情啊,读糟糕的代码就更令人无法忍受了……

Leave a Reply

(required)

(required)

WWW.YIHUI.NAME XIE@YIHUI.NAME © 2007 - 2010 by Yihui Xie