yanlinlin 站长放出个问题,按照《魔方与数学》一文的后记上记录的:

请将1111111111、……的平方写下来,从最小的开始,每个占一行,并且全部居中书写,图形的样子?

问题不难,不外乎就是将这些数字平方,在按照要求放置。但,存在一个小问题,计算机一个单元存储数据的数据长度不是无限制的,而且精度也有所限制,所以当11111111平方的时候,R给出的数据已经是约数了。帖子讨论详见(这里

还好,这些数据的平方比较简单,可以通过模拟平方的运算过程来得到精确的结果,代码如下:

生成的图形有些像杨辉三角,也是非常漂亮:

但我想应该还有更好的实现方式,期待跟帖出现。

 

前些天在准备中国第三届R语言会议(上海)的时候,翻到以前记录在Google Notebook里的一些材料,一篇是关于Google Codes关于R代码的规范,非常值得借鉴。

规范这个东西平时多多注意一些还是有好处的,就和作文一样,漂亮的字体总能有不错的加分。这里就不翻译原文了,摘一些 tips 供大家参考:

1、一般性规则

  • 避免使用attach
  • 写函数是尽量少的使用stop()
  • 定义S3和S4的对象不要混在一起使用

2、文件命名

以.r结束的文件,尽可能的增加信息在文件名里面,比如

Good:

predict_ad_revenue.R

Bad:

foo.R

3、变量名和函数命名规则

# 注意,在R环境下,大小写是敏感的

变量:

Good:

avg.clicks

Bad:

avg_Clicks, avgClicks

函数名:

Good:

CalculateAvgClicks

Bad:

calculate_avg_clicks, calculateAvgClicks

4、字符间隔

这个可能是最快的,使代码外观变”漂亮”的规则了

Good:

tabPrior <- table(df[df$daysFromOpt < 0, "campaignid"])

Bad:

tabPrior<-table(df[df$daysFromOpt<0,"campaignid"])

这里包含了赋值、逻辑符号以及逗点分隔。

# 在R里面尽量少用 =

在函数里:

Good:

if (debug)

Bad:

if(debug)

5、代码组织

尤其是做项目的话,以下信息是必须有的:

  1. 版权声明
  2. 作者注释
  3. 文件说明,项目目的,输入和输出的说明
  4. source() 和 library() 说明
  5. 函数定义
  6. 其他

6、注释

养成良好的注释习惯

  • 单行注释以 # 开头,加一个空格
  • 短注释需要在代码后面空两格,然后 # ,再加一个空格

最后再一次推荐使用Emacs+ESS,虽然我已经折腾n多次了~~

永久链接:http://www.bjt.name/2010/11/google-r-code-style

 

用于编辑 R 脚本的文本编辑器很多,个人更倾向于使用开源编辑器(关于 R 的编辑器我在 RFAQ_cn 上也提过)。这里主要介绍一下 gedit,一款在 GNOME 桌面环境下的文本编辑器。

虽说 geidt 看起来就和 Windows 下面的 notepad 一样简陋,但它对于运行一般 R 脚本已经足够用,因为 gedit 编辑器可以将 R 代码直接作为外部命令运行。具体实现方式如下:

依次选择:编辑-首选项-插件-外部工具(执行外部命令和Shell脚本)

Screenshot-外部工具管理器.png

新建一个工具R,在命令中写入 R –no-save –no-restore -q,同时写入描述和快捷键(这里定义的是ctrl +r)。

输入可选择"选中区域"和"全选",输出的话,"在下方面板中显示"比较好一些,当然这个看个人喜好。

编辑 R 代码过程中,选中要执行的代码,ctrl+r,OK,输出结果,非常方便。

Screenshot-新文件 (~-桌面) - gedit.png

 

早上懒洋洋的爬起来看邮件,又一封 SOA Applications for Discount Candidates  寄到了我这儿。从我4年前申请 SOA 考试到现在,从来没看过相关东西,估计这辈子与 精算 绝缘了。闲话少扯,扯些更闲的——用 R 来寄信。

shell.exec(paste("mailto:","google@gmail.com",
"?cc=ruc@ruc.edu.cn",
"?subject=关于R寄信的问题",
"&body=是这个样子的:谁能介绍我一个可以方便书写代码的空间",
sep=""))

最初想法源于和zhangm的聊天,当时想的比较复杂。

其实这段 R 代码,我连伪装都没有做,哈哈。

 

第一届 R 会议结束了,这么milestone 的事件,不写点东西对不起观众。昨天晚上本来想写些东西,不过这两天实在太累,只好放在了今天。见识了n多个传说中的大牛:

  1. Yihui Xie:我这个师弟,脑子里奇思妙想太多,估计以后在国内,肯定是Bill G 的料。下次我决定用 R 跑个桌签,肯定也特方便。
  2. Guohui Ding:传说中的那位,开始我一直以为是40、50岁的老头子呢,结果和自己同年生。下了飞机就直奔会场,敬业。大赞那个网络关系图,学基因的就是不一样。and 刚从德国带回来的那本让人狂吐的杂志:
  3. 照片-0123

  4. 吴喜之老师:跟老师混这么多年,头一次看到吴老会在一个地儿坐一天(旁白:俺啥时候能学吴老的一招半式,也就能独步武林了)
  5. Peng Zhan:……不重要,R 重要……险些笑翻我  ^_^
  6. Tan Xi:这两个小伙,有前途啊
  7. Gang Chen:原来生物和遗传应用这么个广泛,孤陋寡闻了
  8. Lipeng Hou:一直以为是个mm,哈
  9. John Maindonald:老头子真牛,够我喝一壶的了
  10. Jian Li:统计学院一哥的美名不是白传得……
  11. Xiang Zhang:那是美学!怎么学 R 的人都这么“不务正业”呢,而且是公司支持的不务正业!?
  12. Chen Zuo:quantile regression 应用还是很广的,哎,当初俺们也有这机会就好了
  13. Peng Ding:能上 PKU 的概率统计确实不一般,而且——贝耶斯统计被压抑太久了。嘿嘿嘿
  14. Cloud wei:平时还挺腼腆的,上台后激情四射的
  15. Yanping Chen:数学能爱好到这份上,而且居然同样用 R
  16. Lichongl:PKU 卧虎藏龙,不说了
  17. Huaru Wang:见识了在水文上也有成熟模型(还欠我数据呢啊!)
  18. WengYm:精通 R 的 PPMM
  19. Ming Liu:果然有在企业中规模使用 R 的
  20. Bin Ma:手抄6000+数据的牛人,太狠了!
  21. Bing Zheng:以后的师妹,肯定没问题了,哈

© 2012 刘思喆 @ 贝吉塔行星 Suffusion theme by Sayontan Sinha