楼主: S_user
5313 4

[学习分享] 如何写R的程序包 [推广有奖]

  • 0关注
  • 0粉丝

you@my.heart

硕士生

64%

还不是VIP/贵宾

-

威望
0
论坛币
2746 个
通用积分
0
学术水平
10 点
热心指数
26 点
信用等级
4 点
经验
1897 点
帖子
94
精华
0
在线时间
271 小时
注册时间
2008-7-29
最后登录
2018-8-4

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
* 该指南将介绍如何在Unix/Linux下创建在Unix/Linux下使用的R的包(package)。如果你要将你所创建的Unix/Linux下使用的包发布在CRAN,CRAN将为你创建在windows下使用的包。创建一个在Windows下使用的包稍微有点复杂,虽然过程差不多,但需要安装Perl等其它软件(需要安装的软件请参考R语言中文社区)。
* 更详细的创建包的内容请参考手册《Writing R Extensions》

* 所有的函数和变量的名称都必须避免与R的内部函数名相冲突。另外,在变量名称中的“.”将被当作分隔符,比如“logLikelihood”是允许的,但“log.likehood”就不合法(因为已经有内部函数名称log)。

* 尽可能避免使用全局变量(global variables),如果一定要使用,不要使用“a<<-b”来赋值,使用:
assign("a",b,.GlobalEnv) a <- get("a", pos=globalenv())

一般来说,全局变量最好使用长的有意义的命字,可以避免潜在的命名冲突。如使用“Xinput”而不用“X”。

* 如果将包发布在CRAN上,CRAN就会自动为你的包创建一个完全的PDF手册,如果你不发布,在你使用命令”R CMD build …”(见下面)的时候,也会自动为你创建一部分。

如何写R的程序包.pdf (101.46 KB)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:程序包 如何写 Extensions Likelihood Variables 程序包

已有 2 人评分经验 学术水平 热心指数 收起 理由
qoiqpwqr + 1 + 1 鼓励积极发帖讨论
ltx5151 + 20 + 1 + 1 感谢分享

总评分: 经验 + 20  学术水平 + 2  热心指数 + 2   查看全部评分

死柚子
沙发
ltx5151 发表于 2011-3-9 16:40:14 |只看作者 |坛友微信交流群
十分感谢lz的分享,相信会对各位会员有很大帮助。

个人多嘴补充一下:writing r extensions里面虽然众多的例子是再unix/linux下讲解的,但是起编写的基本思想是适用于任何平台的。绝大多数的功能在mac和win下面都可以实现,事实上,很多地方mac下面更方便写。但是win下面会有一些编译的问题,需要更改一些compling的设置。编辑后的原文件,.tar.gz其实可以直接在shell安装,是可传播的标准版本。通常为了更好的方便习惯用GUI的用户,也可以由此制作出binary的版本。大家写好基本文件后一定要在shell下面check(R CMD CHECK ....),这样才可以保证你制作的包能很好的被别人使用。另外,后期制作需要一些基本TeX的设置,如果你的TeX不是完整版的话。
已有 1 人评分学术水平 热心指数 收起 理由
qoiqpwqr + 1 + 1 鼓励积极发帖讨论

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

使用道具

藤椅
casperyc 发表于 2012-3-15 12:07:04 |只看作者 |坛友微信交流群
这么有用的东西没人顶????


不识货啊!!!!!!



顶!

使用道具

板凳
lina260 发表于 2012-7-15 23:45:45 |只看作者 |坛友微信交流群
谢谢楼主分享,正发愁这个

使用道具

报纸
ttyang_xiamen 发表于 2014-9-10 10:30:58 |只看作者 |坛友微信交流群
萨顶顶!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-10-6 04:03