访问和修改R中由.C()调用的包函数

访问和修改R中由.C()调用的包函数,c,r,C,R,我目前正在查看“PlayerRatings”包,希望检查并可能修改.C(“elo”,…)-函数的内部,该函数是该包的一部分 我已经找到了关于以及如何查找的资源,但我仍然不确定在何处查找C函数的(未编译)源代码,它是R步骤中包的一部分: 谷歌搜索CRAN+玩家评级 在CRAN页面上,单击并下载 使用tar-xvzf./PlayerRatings_1.0-0.tar.gz或类似的工具打开包装 查看PlayerRatings/src/ratings.c(c代码所在的文件夹是src) 有关重建说明,

我目前正在查看“PlayerRatings”包,希望检查并可能修改
.C(“elo”,…)
-函数的内部,该函数是该包的一部分

我已经找到了关于以及如何查找的资源,但我仍然不确定在何处查找C函数的(未编译)源代码,它是R步骤中包的一部分:

  • 谷歌搜索CRAN+玩家评级
  • 在CRAN页面上,单击并下载
  • 使用
    tar-xvzf./PlayerRatings_1.0-0.tar.gz
    或类似的工具打开包装
  • 查看
    PlayerRatings/src/ratings.c
    (c代码所在的文件夹是
    src

有关重建说明,请查看您链接的“如何编写R扩展”页面。

下载并解压缩,然后从那里开始。这非常有用!我应该可以做一些改变。我重新检查了两个链接的文档,但我仍然不太确定如何获得在R下工作的函数的修改版本。有(常规)提示吗?:)一般提示:从本地修改的源目录重新生成包和/或重新安装包。@stats hb,
library(devtools)
可以帮助完成此操作。首先,删除现有版本的
PlayerRatings
(您可以随时在以后重新安装),然后导航到包含修改包的文件夹,并使用
devtools::install()
。实际上,我还没有在使用C的软件包中尝试过这一点,但我相信它应该可以工作(尽管您必须在系统上安装C编译器等等)。也有一些方法让DEV包和真正的包共存,而不需要删除真正的包。@ STATS HB,也应该考虑查看包<代码>内联和<代码> RCPP < /代码>。最简单的方法是使用修改后的C代码定义一个新的
inline
函数,而不是尝试重新构建修改后的包。