可以在另一个文件(或包中)中定义plumbed函数吗?

时间:2018-06-11 08:30:44

标签: r plumber

当在另一个文件中定义该函数时,我在获取plumbed函数时遇到了一些问题。

我想在包中放置标准铅垂功能。我的第一次尝试是这样的:

# 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上询问)

1 个答案:

答案 0 :(得分:0)

这有效:

#* 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)

}