returns 自定义 R 包中的函数
Function that returns a function in custom R package
我的问题与此有关:Function that returns a function in R
但是,我正在尝试创建一个 R 包。我有以下函数,它使用存储在 sysdata.rda 中的名为 NInput 的数据框。我想 return 使用 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
实现没有参数,因此发生错误。
如果我没理解错的话,你想通过approxfun
和Nfun
和returns函数的值来让用户输入函数,对吗?
如果是这样,以下应该有效。
Nfun <- function(x){
NInput$Date
NInput$Ninput
Nfun <- approxfun(NInput$Date,NInput$Ninput,rule=2)(x)
}
我的问题与此有关:Function that returns a function in R 但是,我正在尝试创建一个 R 包。我有以下函数,它使用存储在 sysdata.rda 中的名为 NInput 的数据框。我想 return 使用 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
实现没有参数,因此发生错误。
如果我没理解错的话,你想通过approxfun
和Nfun
和returns函数的值来让用户输入函数,对吗?
如果是这样,以下应该有效。
Nfun <- function(x){
NInput$Date
NInput$Ninput
Nfun <- approxfun(NInput$Date,NInput$Ninput,rule=2)(x)
}