代码之家  ›  专栏  ›  技术社区  ›  MarkeD

是否可以在另一个文件(或包)中定义垂直函数?

  •  0
  • MarkeD  · 技术社区  · 7 年前

    当函数在另一个文件中定义时,获取垂直函数的语法有点困难。

    我想在一个包里放一个标准的铅锤功能。我的第一次尝试是这样的:

    # 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 回复  |  直到 7 年前
        1
  •  0
  •   MarkeD    7 年前

    这项工作:

    #* 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)
    
    }
    
    推荐文章