从零到一写R包(一) -- R包的结构

从零到一写R包(一) -- R包的结构

不知道起啥的xc
不知道起啥的xc
1860 浏览

学习资源

R的官方文档Writing R Extensions是目前编写R包最完整也是最好的参考文档。

本文主要参考此官方文档。

推荐中文阅读文档 R语言忍者秘笈

R包的结构

R文件夹 (其中包含R包里的code),DESCRIPTION文件

(1)DESCRIPTION

图片来自 徐静的博客

可以手动制作也可以使用R代码 ‘load_all()'
其中必须要填写的部分是 ‘Package’, ‘Version’, ‘License’, ‘Description’, ‘Title’, ‘Author’, 和 ‘Maintainer’,其他均为选填。注意:使用‘load_all()'后仍需手动添加‘Maintainer’。
1. Package:  包的名字
2. Version: 包的版本,“-”“.”都是分隔符号,要注意的是0.9和0.75他们不代表小数,其中0.9<0.75
3. Title: 引用其他包,其他软件使用单引号,引用其他书籍用双引号
4. Description: 一般用这个包的名字或者“this package”开头。引用其他包,其他软件使用单引号,引用其他书籍用双引号。 URL用<引用链接>

(2)Licensing

发布到CRAN的包必须要有开源许可证书。

(3)Package Dependencies

这一部分需要给出我们的包需要依赖的包。包后面可以自行选择是否添加版本信息。比如‘MASS (>= 3.1-20)’。

这一部分同样也可以给出需要依赖的R版本,比如‘R (>= 2.14.0), R (>= r56550)’ 

 

 

 

实例

写一个R包,提供以下四个方程,分别叫做 pxkcd, qxkcd, dxkcd 和 rxkcd。类似于R中其他的p, q, d, 和 r 方程,比如(qnorm,pnorm,dnorm,rnorm)

我们需要实现的分布是在xkcd comic 2118中介绍的。

 

 

假设f是正态分布的概率密度函数,我们现在有一个二元随机向量 (X,Y)均匀分布在坐标横轴和f函数之间。X的边缘分布是正态分布,给定X的Y的条件分布是(0,f(x))之间的均匀分布。Y的边缘分布就是xkcd分布,也是我们需要实现R函数的对象。

让h(y)代表从X均值到f(x)=y任意一点的距离,

Y的分布函数是:

用Mathematica算出Y的概率密度函数是

计算Y的分布是很困难的,目前看来只有数值的方法。

解答将会在后续文章中给出。

 

 

 

君君提示:你也可以发布优质内容,点此查看详情 >>

本文著作权归作者本人和北美省钱快报共同所有,未经许可不得转载。长文章仅代表作者看法,如有更多内容分享或是对文中观点有不同见解,省钱快报欢迎您的投稿。

1860 1 0

扫码下载APP