2

我是 R 包开发的新手,所以这可能是一个愚蠢的问题,但我希望我能在这里得到一些帮助......

我使用 Hadley Wickem http://adv-r.had.co.nz/Package-development-cycle.html的手册在 R 中开发了一个小包

我切换到 dev_mode(),install() 我的包并用库(包名)加载它

举一个例子:

#' logging function
#' 
#' This function tries to use logging functionality. If the logging package 
#' isn't installed, it uses a normal print command
#' 
#' @param string the string to print
#' @param level the level of the log output, for example \code{WARN}, 
#' \code{INFO} or \code{ERROR}
#' @examples
#' \dontrun{
#' mylog('for your information')
#' mylog('this is a warning','WARN')
#' }
mylog <- function(string,level='INFO') {
  tryCatch(
    switch(level,
           WARN=logwarn(string),
           ERROR=logerror(string),
           INFO=loginfo(string),
           {logwarn(sprintf('warnlevel "%s" is not defined!',level))
            loginfo(string)}),
    error=function(condition) {
      cat(sprintf('%s: %s\n',level,string))
    })
}

当我现在键入时?mylog,我会在 rStudio 内的帮助窗口中获得帮助......但是当我尝试使用 Tab 自动完成时,这个小弹出窗口中没有任何信息......

所有其他包都有一些信息,如何使用该功能。

希望有人可以给我一个提示...

4

1 回答 1

1

我找到了解决方案……或者至少我希望如此……

在文档中添加@export标签有助于并在自动完成中提供帮助...

#' logging function
#' 
#' This function tries to use logging functionality. If the logging package 
#' isn't installed, it uses a normal print command
#' 
#' @param string the string to print
#' @param level the level of the log output, for example \code{WARN}, 
#' \code{INFO} or \code{ERROR}
#' @export
#' @examples
#' \dontrun{
#' mylog('for your information')
#' mylog('this is a warning','WARN')
#' }
mylog <- function(string,level='INFO') {
  tryCatch(
    switch(level,
           WARN=logwarn(string),
           ERROR=logerror(string),
           INFO=loginfo(string),
           {logwarn(sprintf('warnlevel "%s" is not defined!',level))
            loginfo(string)}),
    error=function(condition) {
      cat(sprintf('%s: %s\n',level,string))
    })
}    
于 2014-06-27T09:18:19.023 回答