是否可以在另一个文件(或包?)中定义一个探测函数?
Can a plumbed function be defined in another file (or package?)
当函数在另一个文件中定义时,我在获取有关获取已检测函数的语法时遇到了一些问题。
我想将一个标准的 plumb 函数放入一个包中。我的第一次尝试是这样的:
# in the package
#' Get results for plumber
#'
#' @param client the clientname
#' @param date The date of data to fetch
#' @param config a config file
#'
#' @export
plumber_ga <- function(client = "none", date = Sys.Date(), config = NULL){
message("Calling API for client:", client, " for date:", date)
...
}
然后尝试在 API 文件中调用该函数:
# api.R
#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/foo
plumber_ga(client = "none", date = Sys.Date(), config = NULL){
...
}
...但是当我尝试这样做时,出现 client is not defined
错误。有没有办法做到这一点?我想注释冲突或其他什么 - 或者我是否需要在 api.R 文件中只定义一次函数?
如果直接调用同样的函数:
# api.R
#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/foo
function(client = "none", date = Sys.Date(), config = NULL){
...
}
(也询问了包裹GitHub)
这个有效:
#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/google_analytics
function(client = "none", date = Sys.Date(), config = NULL){
plumber_ga(client, date, config)
}
当函数在另一个文件中定义时,我在获取有关获取已检测函数的语法时遇到了一些问题。
我想将一个标准的 plumb 函数放入一个包中。我的第一次尝试是这样的:
# in the package
#' Get results for plumber
#'
#' @param client the clientname
#' @param date The date of data to fetch
#' @param config a config file
#'
#' @export
plumber_ga <- function(client = "none", date = Sys.Date(), config = NULL){
message("Calling API for client:", client, " for date:", date)
...
}
然后尝试在 API 文件中调用该函数:
# api.R
#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/foo
plumber_ga(client = "none", date = Sys.Date(), config = NULL){
...
}
...但是当我尝试这样做时,出现 client is not defined
错误。有没有办法做到这一点?我想注释冲突或其他什么 - 或者我是否需要在 api.R 文件中只定义一次函数?
如果直接调用同样的函数:
# api.R
#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/foo
function(client = "none", date = Sys.Date(), config = NULL){
...
}
(也询问了包裹GitHub)
这个有效:
#* Get data
#* @param client the clientname
#* @param date One day of data to fetch
#* @param config A config file TBD
#* @post /datalake/<client>/google_analytics
function(client = "none", date = Sys.Date(), config = NULL){
plumber_ga(client, date, config)
}