我正在尝试安装r
软件包 sowas,不幸的是它太旧了,无法在新版本的r
.
根据作者的说法,您可以使用该source()
函数的包来访问代码,但我无法弄清楚如何做到这一点。
任何帮助表示赞赏。
这是我描述的包的链接,因为它不是 CRAN 包:http ://tocsy.pik-potsdam.de/wavelets/
我正在尝试安装r
软件包 sowas,不幸的是它太旧了,无法在新版本的r
.
根据作者的说法,您可以使用该source()
函数的包来访问代码,但我无法弄清楚如何做到这一点。
任何帮助表示赞赏。
这是我描述的包的链接,因为它不是 CRAN 包:http ://tocsy.pik-potsdam.de/wavelets/
.zip 文件是 Windows 二进制文件,因此不会太有趣。您要查看的是 .tar.gz 存档的内容。您可以提取这些内容,然后查看 R 子目录中的代码。
您还可以更新包以使用新版本的 R,以便您可以实际构建和安装包。为此,您可以像以前一样解压缩 .tar.gz,但现在您需要添加一个 NAMESPACE 文件。这只是包目录顶部的一个纯文本文件,其格式如下:
export(createar)
export(createwgn)
export(criticalvaluesWCO)
export(criticalvaluesWSP)
export(cwt.ts)
export(plot.wt)
export(plotwt)
export(readmatrix)
export(readts)
export(rk)
export(wco)
export(wcs)
export(writematrix)
export(wsp)
在您实际希望能够使用的包中的任何函数的导出语句的位置。如果未导出函数,则包中的函数仍然可以访问该函数,但用户不能使用它(很容易)。一旦你这样做了,你应该能够构建和安装包。
我已经冒昧地做了一些。我实际上并没有花时间弄清楚哪些函数有用并且应该被导出,只是假设如果为应该导出的函数编写了帮助页面,并且如果没有帮助页面,那么我没有导出它。我使用 Rd2roxygen 将帮助页面转换为 roxygen 代码(因为这就是我滚动的方式),之后不得不进行一些清理,但它似乎安装得很好。
因此,如果您安装了 devtools 软件包,您实际上应该可以使用以下命令直接安装我修改的版本
library(devtools)
install_github("SOWAS", "Dasonk")
就个人而言,我建议您采用添加 NAMESPACE 文件和不直接添加的方式,因为这样您就可以更好地控制代码,并且更有能力解决使用包时可能出现的任何问题。或者,如果您使用 git,您可以分叉我的 repo 并从那里继续修复问题。祝你好运。
如果您想查看特定函数的源代码,只需键入不带大括号的函数名称,然后按 Enter。您将看到代码。
例如,在命令提示符中键入 var 以查看其代码。
> var
function (x, y = NULL, na.rm = FALSE, use)
{
if (missing(use))
use <- if (na.rm)
"na.or.complete"
else "everything"
na.method <- pmatch(use, c("all.obs", "complete.obs", "pairwise.complete.obs",
"everything", "na.or.complete"))
if (is.na(na.method))
stop("invalid 'use' argument")
if (is.data.frame(x))
x <- as.matrix(x)
else stopifnot(is.atomic(x))
if (is.data.frame(y))
y <- as.matrix(y)
else stopifnot(is.atomic(y))
.Call(C_cov, x, y, na.method, FALSE)
}
<bytecode: 0x0000000008c97980>
<environment: namespace:stats>