修改 R 包的源代码

use*_*241 3 r bioconductor

我想删除一行:

if( nrow(mm) <= ncol(mm) )
Run Code Online (Sandbox Code Playgroud)

来自生物导体包“DEXSeq”如何做到这一点?

Jan*_*ary 5

R 包只是一个包含多个目录和文件的存档。您可以随意修改它们。下载包——它将以“.tar.gz”形式结尾。打开包装;在许多系统中,以下(来自命令行)将起作用:

tar xzf package.tar.gz
Run Code Online (Sandbox Code Playgroud)

或者,如果您有压缩包的 Windows 版本 (package.zip),只需解压缩它。

进入创建的目录,进入目录“R”并找到包含你的函数的文件:

cd package
cd R
grep "if( nrow(mm) <= ncol(mm) )" *.R
Run Code Online (Sandbox Code Playgroud)

编辑它,然后重新打包:

cd ../..
tar czf package_mine.tar.gz
Run Code Online (Sandbox Code Playgroud)

或者,在 Windows 中,将目录压缩回package.zip表单。

您现在可以安装和使用 package_mine。

这不是唯一的方法,规范地应该使用 R 重建包。但是,对于小的修改和快速尝试它会做的事情。

  • 嗯,是的,你是对的,但定义“轻松的生活”。学习一些新的技巧不仅需要花一些时间与他们相处,而且在半年后再次需要它们时还要记住它们。而使用 tar、vim 和标准包工具修改包只需要您每天使用的这些工具。 (3认同)