如何向包中添加中缀函数?
How to add an infix function to a package?
我想向包中添加一个中缀函数,但 %%
向我提出了挑战。
我也发现了 this solution but unfortunately it doesn't explain where exactly the line export("%IN%")
should be added. I didn't get any smarter from that 个问题。由于问题已经五年了,我决定提出一个新问题。
考虑与第一个链接问题中相同的函数。
"%IN%" <- function(x, table) x & match(x, table, nomatch = 0) > 0
我通常根据这个粗略的模板编写一个 <myfun>_function.R
文件到我的包中添加一个新功能。
#' Title
#'
#' \code{%IN%} does this and that
#' @param x texttext
#' @param table texttext
#' @return texttext
#' @export
#' @examples
#' 1:5 %IN% 1:3
"%IN%" <- function(x, table) x & match(x, table, nomatch = 0) > 0
因此,我会将名为 "`%IN%`_function.R"
的文件保存到包目录 X
.
的 R
文件夹中
然后在setwd("./X")
我运行这几行代码
library(digest)
R.utils::reassignInPackage("digest", "digest", mydigest)
roxygen2::roxygenize()
(我从 得到 mydigest
的地方)。
在终端的最后,我用 R CMD build X
创建了包。
那么,export("%IN%")
行到底添加在哪里呢?
根据评论,诀窍是按以下顺序执行:
- 照常编写函数的
*.R
文件,任意命名
- 运行
roxygenize()
- 在包文件夹中手动编辑生成的
NAMESPACE
文件,添加一行 export("%IN%")
- 运行
R CMD build <package name>
在终端
- 或许更新版本号
- 安装
我想向包中添加一个中缀函数,但 %%
向我提出了挑战。
我也发现了 this solution but unfortunately it doesn't explain where exactly the line export("%IN%")
should be added. I didn't get any smarter from that 个问题。由于问题已经五年了,我决定提出一个新问题。
考虑与第一个链接问题中相同的函数。
"%IN%" <- function(x, table) x & match(x, table, nomatch = 0) > 0
我通常根据这个粗略的模板编写一个 <myfun>_function.R
文件到我的包中添加一个新功能。
#' Title
#'
#' \code{%IN%} does this and that
#' @param x texttext
#' @param table texttext
#' @return texttext
#' @export
#' @examples
#' 1:5 %IN% 1:3
"%IN%" <- function(x, table) x & match(x, table, nomatch = 0) > 0
因此,我会将名为 "`%IN%`_function.R"
的文件保存到包目录 X
.
R
文件夹中
然后在setwd("./X")
我运行这几行代码
library(digest)
R.utils::reassignInPackage("digest", "digest", mydigest)
roxygen2::roxygenize()
(我从 mydigest
的地方)。
在终端的最后,我用 R CMD build X
创建了包。
那么,export("%IN%")
行到底添加在哪里呢?
根据评论,诀窍是按以下顺序执行:
- 照常编写函数的
*.R
文件,任意命名 - 运行
roxygenize()
- 在包文件夹中手动编辑生成的
NAMESPACE
文件,添加一行export("%IN%")
- 运行
R CMD build <package name>
在终端 - 或许更新版本号
- 安装