【发布时间】:2018-04-16 13:59:18
【问题描述】:
我的问题与这个有关:Function that returns a function in R 但是,我正在尝试创建一个 R 包。我有以下函数,它使用存储在 sysdata.rda 中的称为 NInput 的数据帧。我想使用 approxfun() 函数返回一个函数。我希望这个包的用户能够调用 Nfun(Dates),其中 Dates 是使用 approxfun() 创建的函数的常用输入。
#' A function to return interpolated N input data
#'
#' function to return interpolated N input data for decimal dates
#' @param Dates A scalar or vector of decimal input dates
#' @keywords nitrogen
#' @export
#' @examples
#' Nfun()
Nfun <- function(){
NInput$Date
NInput$Ninput
Nfun <- approxfun(NInput$Date,NInput$Ninput,rule=2)
}
但是,当我使用此功能安装我的包并在加载包后在我的 R 会话中调用 Nfun(1900) 时,我得到:
Error in Nfun(1900) : unused argument (1900)
如果我设置了
Nfun <- Nfun()
在 Nfun.R 脚本之外,在我加载包后的活动 R 会话中,我的函数出现在全局环境中,我可以调用
Nfun(1900)
[1] 0.7846106
但是,我不希望用户必须这样做。我在想我在如何定义我的包函数方面犯了一些基本错误,但我很难过。
【问题讨论】:
-
你把这些名字弄得一团糟,不要把所有东西都命名
Nfun!
标签: r function package devtools