首先问一个问题,R主站上已经有上万个包了,为什么还要自己编R包呢?因为这些函数不一定符合你的需求。就拿read.delim()来说吧,对于用tab键分隔的文件一般首选该函数读入,但该函数除了读数据外,还做了许多列类型检验之类的工作,导致遇到特殊字符就会卡住,读不完整。其稳定性还不如用file、readLines、strsplit组合一下,编个只是读数据的函数来得实用。所以,用R时间长的同学,还是把自己好用常用的函数做成package包起来,随时加载,方便调用。
做R的包具体步骤,网上已经有很多资料了,比如统计之都帖子:http://cos.name/cn/topic/15991 和《Creating R Packages: A Tutorial》都是很好的参考资料,下面主要说几个需要注意的地方:
1)R函数的帮助文档.Rd文件的语法类似于latex,但并不是latex全部的命令都可用,使用的只是其中的一部分;
2)制作R的命令:linux——R CMD build XXX,windows——R CMD INSTALL --build XXX;
3)在R包中想加入自己的数据时,需要在你的包文件夹下建一个data子文件夹,然后将你的数据用save命令存为.rda文件,放在data文件夹下就可以了。注意,如果你的数据在变量x1中,save(x1, file="x2.rda"),将x2.rda放在data文件夹下,随R package一起打包。当你加载R包后,用data(x2)加载数据时,R会在可搜寻的路径中寻找x2.rda文件,并加载其中的变量,通过ls()命令,可以看到加载的变量是x1。所以,如果你想data(x2)后,加载的变量是x2,那么save时,应该用save(x2, file="x2.rda")进行保存。切记!