Home Comments Thread
New Thread

12 Comments

giscus-bot giscus-bot 2022-12-16 07:18:55
访客 *colinisstudent* @ 2007-11-06 09:09:03 写道:

已经是编包的人了。。。。我们都还处于下包的阶段

yihui yihui 2022-12-16 07:19:05

其实写R包不太困难,稍微读一读Write R Extensions的前几章就可以了。不过对于Windows用户来说,在理解开源软件的某些概念时可能还有点困难,而且Windows下一般来说没法直接用R CMD build/check/install 的命令,稍有点麻烦。

——原帖发布于 2007-11-06 10:43:14

giscus-bot giscus-bot 2022-12-16 07:18:56
访客 *hUhUhU* @ 2007-11-09 14:43:13 写道:

厉害厉害,发包一族。

@Jiangtang

yihui yihui 2022-12-16 07:19:06

呵呵,这两天费尽心思写包的Vignette,我发现我现在写东西总有写成书的倾向 -___-//
等大致框架差不多了就发出来大家帮忙测试测试啊

——原帖发布于 2007-11-09 19:30:05

giscus-bot giscus-bot 2022-12-16 07:18:57
访客 *chendana* @ 2010-05-10 12:07:37 写道:

假如现在我已经有了一个编好的R函数,用来给出回归的精确结果,存成了r脚本的格式,文件名为linmod.r

linmod<- function(x, y)

{

compute QR-decomposition of x

qx <- qr(x)

compute (x'x)^(-1) x'y

coef <- solve.qr(qx, y)

degrees of freedom and standard deviation of residuals

df <- nrow(x)-ncol(x)

sigma2 <- sum((y - x%*%coef)^2)/df

compute sigma^2 * (x'x)^-1

vcov <- sigma2 * chol2inv(qx$qr)

colnames(vcov) <- rownames(vcov) <- colnames(x)

list(coefficients = coef,

vcov = vcov,

sigma = sqrt(sigma2),

df = df)

}

(1)清除内存中的对象:

rm(list=ls())

(2)设定工作目录,这里设定为 c:/pa

setwd("c:/pa")

(3)将制作包的源文件 linmod.r拷贝到c:/pa/文件夹下,

之后输入:

package.skeleton(name="linmod",code_files="c:/pa/linmod.r")

症状如下: 运行package.skeleton()时出现如下提示.

Error in sprintf(gettext(fmt, domain = domain), ...) :

Error in sprintf(gettext(fmt, domain = domain), ...) :

但是,其它的文件夹如:R,data都是正常的.
有谁能指点一下是什么原因吗?
我用的版本是2.11.0,谢谢前辈指点

yihui yihui 2022-12-16 07:19:07

参见论坛回复。不必一问多发……

——原帖发布于 2010-05-11 05:51:43

giscus-bot giscus-bot 2022-12-16 07:19:09
访客 *guanyuan* @ 2011-03-10 12:19:50 写道:

请问这个问题是如何解决的呢?
我也遇到相同的问题。
谢谢!

giscus-bot giscus-bot 2022-12-16 07:18:58
访客 *Nan Xiao* @ 2010-11-03 23:48:26 写道:

你要做的工作只是:写函数的源程序(.r)和帮助文档(.Rd)

R-exts里似乎提到过, 扩展名最好写大写的".R", 因为小写的".r"有其他软件也用到. 这样才完美.

@nanxstats

yihui yihui 2022-12-16 07:19:08

这陈年老帖也被你翻出来了……我现在习惯用大写R扩展名了。

谢谢!

——原帖发布于 2010-11-04 00:20:20

giscus-bot giscus-bot 2022-12-16 07:18:58
访客 *guanyuan* @ 2011-03-11 07:09:03 写道:

你好,我最近使用R语言软件,有几个困惑的地方,不知您是否可以帮忙解决下。
先谢谢您了。

(1)搭建好包框架后,先build 还是先 check
(2)windows下build时用命令 R CMD build --binary pkgname
怎么有的地方说是这样 Rcmd build --binary pkgname
我搞不明白了。
(3)为什么在windows下要加载.zip文件?能解释下.zip文件对于windows有什么意义吗?
(4)既然网上有那么多的可用包,为什么我们还要自己写包呢?因为教程里面都有讲这方面的东西,但是我觉得用不到吧?
(5)帮助文档中“#”是起注释作用的,但是还有些符号,如波浪线“~~”是什么意思呢?我觉得仍然是注释作用?
(6)建立好包框架后,生成帮助文档,哪些是必须修改的,不修改会导致build和check通不过吗?我不了解修改这些内容有什么意义,是给别人看的吗?
(7)我使用check命令会出现错误

  • checking whether package 'freq' can be installed ... ERROR
    不晓得原因出在哪里呢?
    (8)我使用build命令,会出现很多cygwin warning:不知道是什么原因。
yihui yihui 2022-12-16 07:19:09

1、无所谓,但二者目的不同。
2、binary选项放在前面或后面都无所谓,一样的。
3、zip是Windows下的二进制包(即已经编译好的);tar.gz文件才是源代码包。
4、取决于你自己,有人为了贡献新的方法算法,有人只是为了自己方便。
5、波浪线是模版自动添加的,应该删掉。文档中的注释是%,而#只是R代码的注释。
6、帮助文档不给人看那给谁看呢?哪些不清楚以及让check报错,哪些就要修改,文档是给人看的,要花的功夫可能比函数本身还大(如果只是自用,那就另当别论)。
7、这句话下面应该还有提示。要么你就自己检查源代码是否真的能运行。
8、忽略之。

下1、如果你是R新手,我最好回答“不能”。如果是老手,那么大概都知道R可以通过system()函数调用系统命令,所以也并不是不能。

下2.1、重复提问!
下2.2、没必要,那书骗你的,或者你理解有误。Rcmdr只是个R包,有它或没它,都可以写R包或干别的活,当然你也可以用它,如果需要的话。

另:接下来的问题请发到COS论坛,对其他人可能有帮助 http://cos.name/cn/

——原帖发布于 2011-03-11 07:56:25

giscus-bot giscus-bot 2022-12-16 07:19:10
访客 *guanyuan* @ 2011-03-11 11:52:13 写道:

您真是好心人。

giscus-bot giscus-bot 2022-12-16 07:18:59
访客 *guanyuan* @ 2011-03-11 07:13:05 写道:

还有一个问题:
为什么build和check的时候,必须在命令行模式下进行,不能在R语言界面下进行吗?

giscus-bot giscus-bot 2022-12-16 07:19:00
访客 *guanyuan* @ 2011-03-11 07:15:44 写道:

还有2个问题:
(1)为什么build和check的时候,必须在命令行模式下进行,不能在R语言界面下进行吗?
(2)有些书中说,要安装Rcmdr,有必要吗?安装Rcmdr之前要先安装car,于是乎,我照办了,在安装过程中,还出现说一些东西missing,是否镜像安装,我选了是,然后一个持续时间很长的下载安装过程开始了。。。现在仍在继续呢,我要终止吗?

giscus-bot giscus-bot 2022-12-16 07:19:01
访客 *guanyuan* @ 2011-03-11 13:00:53 写道:

等我把一些问题都搞懂之后,我会听从您的建议,把帖子发到cos论坛。
呵呵,还有几个问题想要在您这里明确一下。
(1)编号一个.r函数文件,然后加载到内存,搭建包框架,会生成一个同名目录,里面的帮助文档不修改,不会引起后续的build和check出错吧?也就是说,错误应该在函数本身?
(2)我最近才接触R语言,不知道R软件包 扮演着什么角色。您能跟我说说吗?
(3)安装了R软件包之后,如何使用它呢?是找它里面的.r文件,看看是什么名字,然后在RGui中输入函数名,是这样子吗?
(4)我之所以接触R语言,好像老师跟我说要处理一些生物计算相关的东西,主要用到微阵列,但是老师说matlab中aoinformation这方面的功能更强大,学习R只是为了方便跟别人交流。您了解吗?
(5)我现在搞这个R搞了两天了,还没有成功建一个R包,不知道是什么原因,呵呵,是我运气不好吗?我真的不晓得什么原因。我怀疑是我最初拷贝的那个函数有问题,但是概率很小。

yihui yihui 2022-12-16 07:19:11

1、建议修改帮助文档,因为生成的模板可能不合语法规范。
2、扩展R本身的功能。
3、加载包,然后用包中的函数,不必看源代码,而且已经编译过的包你是看不到.r文件的。主要看帮助文档,如果你对一个包一无所知,最好看HTML帮助页面。
4、我不知道MatLab,所以无法评论谁更强大。但“学R只是方便交流”的说法显然不对。
5、你先用好R已经有的函数再考虑建包,我怀疑你是否真的有必要自己写包,R已经有超过2500个包了,如果你做的事情不是超时代的话,你不妨了解一下已有的功能,看样子你可能是做生物信息学的,那么Bioconductor可能有必要了解一下。写包这种事情不适合新手来做,要解释的事情太多了。

——原帖发布于 2011-03-12 09:57:55

giscus-bot giscus-bot 2022-12-16 07:19:12
访客 *guanyuan* @ 2011-03-12 16:59:52 写道:

嗯嗯,我很喜欢您说话的方式,再次感谢您!
顺便说一下,我是学计算机->数据挖掘 方向的,即将研一。
我尽快把这个帖子发到cos论坛,希望对其他人有些许的帮助。

yihui yihui 2022-12-16 07:19:13

谢谢!

——原帖发布于 2011-03-13 11:22:26

giscus-bot giscus-bot 2022-12-16 07:19:02
访客 *miriam* @ 2011-03-30 14:04:27 写道:

您好,我现在有一个问题是关于R CMD check的,我也出现了 checking whether package 'data' can be intalled... ERROR 的情况,具体的出错的信息如下:

  • installing source package 'DBPvalue' ...
    Error in sprintf(gettext(fmt, domain = domain), ...) :
    ''='憼96>'>=', 空格, 或在括号内的适当版本数目.'多字节字符串有错
    ERROR: installing package DESCRIPTION failed for package 'DBPvalue'
  • removing 'C:/DOCUME~1/ADMINI~1/MYDOCU~1/DBPVAL~1.RCH/DBPvalue'

我想问问 这可能是哪儿的错误呢? 因为我找遍了可能的问题 都不知道这个问题是出现在哪里的? 请问 我能不能通过某种方式 找到出错的 是在哪个文件 哪个部分吗? 在dos下 用 R CMD help 会有很多选项 可是我不知道那些选项具体怎么用?麻烦您指点一下 非常感谢

  1. 如果例子里用了dontrun{} 那么这个例子还要经过R的check吗?

3.如果一个distance.rda的数据 经过data(distance)以后,是不是就被读入,变成一个变量了呢?distance需要加引号吗?(如data("distance"))

非常感谢您的帮助!!

giscus-bot giscus-bot 2022-12-16 07:19:02
访客 *miriam* @ 2011-03-30 14:31:08 写道:

我在 R CMD build 中也遇到了问题 *checking DESCRIPTION meta-information... ERROR
Depends/Suggests/Imports/Enhances这些域中有些是畸形的。
有问题的条目为:
R(>=2.12.0)
每条目都必须是程辑包的名字,名字后面可以跟'=', 空格,活在括号内的适当版本数目
(我在description里的depends是:Depends: R(>=2.10.0), methods, fdrtool)我觉得没有错啊。。。我不知道哪儿错了
再这前面有一句话是 *checking for file 'DBPvalue/DESCRIPTION'... OK 不明白它俩之间检查的有什么不同 ?谢谢您

giscus-bot giscus-bot 2022-12-16 07:19:13
访客 *miriam* @ 2011-03-30 14:56:28 写道:

谢谢您啦。。。我已经找到错误了。。格式写错了。。 不好意思啊~~

giscus-bot giscus-bot 2022-12-16 07:19:03
访客 *fan* @ 2011-09-23 09:10:27 写道:

“本文已经过期”,负责的人啊……

@thinkfan

yihui yihui 2022-12-16 07:19:14

这就是网络文章的好处,随时可以声明作废:)

——原帖发布于 2011-09-23 09:16:01

giscus-bot giscus-bot 2022-12-16 07:19:04
访客 *Wenxiao* @ 2014-07-01 22:49:48 写道:

佩服你

Sign in to join the discussion

Sign in with GitHub