devtools :: document错误:认为部分功能描述应作为软件包导入

问题描述 投票:0回答:1

这是我第一次使用devtools,因此可能是一些愚蠢的错误。请不要介意葡萄牙语。我正在此文件中编写包的3个函数,其中两个要导出datazoom_pnadcpnadc_painel_basico

#' @importFrom labelled set_variable_labels var_label
#' @importFrom readxl read_excel
#' @import tidyverse


#' Carregando dados brutos
#'
#' @param diretorio_dados Diretório onde os microdados originais em formato de texto estão armazenados
#'
#' @param diretorio_dicionario Diretório onde o dicionário da pesquisa em formato xls está armaezenado
#'
#' @param ... vetores com datas das pesquisas de interesse no  formato \code{c('trimestre', 'ano')}
#'
#' @return Lista de dataframes, sendo cada entrada um trimestre/ano em \code{...}
#' @encoding UTF-8
#' @export
#'
#' @examples
#' datazoom_pnadc('./Desktop', './Desktop', c(1, 2000), c(2, 2000))
#'
    datazoom_pnadc <- function(diretorio_dados,
                               diretorio_dicionario,
                               ...) {}

     #' Painel básico
     #'
     #' @param build_data Default \code{TRUE}.
     #' Se \code{TRUE}, implementa primeiro \code{\link{datazoom_pnadc}} e depois
     #' monta paineis de indivíduos. Se \code{FALSE}, a função constrói paneis a partir de dados já carregados no R
     #'
     #' @param dados_prontos Bases de dados para diferentes trimestres da PNAD contínua.
     #' Necessário se \code{build_data = FALSE}
     #'
     #' @param local_dados Diretório onde os microdados originais em formato de texto estão armazenados
     #' caso \code{build_data = TRUE}
     #'
     #' @param local_dicionarios Diretório onde o dicionário da pesquisa em formato xls está armaezenado caso
     #' \code{build_data = TRUE}
     #'
     #' @param periodos Lista de vetores com períodos de interesse no formato
     #' \code{periodos = list(c(trimestre1, ano1), c(trimestre2, ano2), ...)}
     #'
     #' @encoding UTF-8
     #'
     #' @return Lista de dataframes, sendo cada entrada um trimestre/ano
     #'
     #' @examples
     #' PNADC_2012 <- datazoom_pnadc(diretorio_dados = './Desktop',
     #' diretorio_dicionario = './pnadcontinua/Desktop',
     #' c(1,2012), c(2,2012))
     #'
     #' teste <- pnadc_painel_basico(build_data = FALSE,
     #'                              dados_prontos = PNADC_2012)
     #'
     #' teste2 <- pnadc_painel_basico(build_data = TRUE,
     #'                               local_dados = './pnadcontinua',
     #'                               local_dicionario = './pnadcontinua/Dicionario_e_input',
     #'                               periodos = list(c(1,2012), c(2,2012)))
     #' @export
    pnadc_painel_basico <- function(build_data = TRUE, ...){}


    loop <- function(data,
                     interview = 2,
                     int_final = 5){...}

运行devtools::document后,出现以下问题:

Updating DatazoomR documentation
Loading DatazoomR
Writing NAMESPACE
Writing NAMESPACE
Writing pnadc_painel_basico.Rd
Warning messages:
1: In loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
  there is no package called ‘Carregando’
2: In loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
  there is no package called ‘brutos’
3: In loadNamespace(i, c(lib.loc, .libPaths()), versionCheck = vI[[i]]) :
  there is no package called ‘dados’
4: datazoom_pnadc.Rd is missing name/title. Skipping

我不知道为什么会这样。由于某些原因,可以将描述中的某些单词添加到import的前一行。并且也仅保存第二个功能。

有人可以帮忙吗?似乎与格式化有关。

r devtools
1个回答
0
投票

我使用RStudio的“新建项目> R包>使用devtools的R包创建了一个新的R包。

然后我添加了一个R文件,其中包含以下内容:

#' @importFrom labelled set_variable_labels var_label
#' @importFrom readxl read_excel
#' @import tidyverse
NULL

#' Carregando dados brutos
#'
#' @param diretorio_dados Diretório onde os microdados originais em formato de texto estão armazenados
#'
#' @param diretorio_dicionario Diretório onde o dicionário da pesquisa em formato xls está armaezenado
#'
#' @param ... vetores com datas das pesquisas de interesse no  formato \code{c('trimestre', 'ano')}
#'
#' @return Lista de dataframes, sendo cada entrada um trimestre/ano em \code{...}
#' @encoding UTF-8
#' @export
#'
#' @examples
#' datazoom_pnadc('./Desktop', './Desktop', c(1, 2000), c(2, 2000))
#'
datazoom_pnadc <- function(diretorio_dados,
                           diretorio_dicionario,
                           ...) {
    return(NULL)
}

#' Painel básico
#'
#' @param build_data Default \code{TRUE}.
#' Se \code{TRUE}, implementa primeiro \code{\link{datazoom_pnadc}} e depois
#' monta paineis de indivíduos. Se \code{FALSE}, a função constrói paneis a partir de dados já carregados no R
#'
#' @param dados_prontos Bases de dados para diferentes trimestres da PNAD contínua.
#' Necessário se \code{build_data = FALSE}
#'
#' @param local_dados Diretório onde os microdados originais em formato de texto estão armazenados
#' caso \code{build_data = TRUE}
#'
#' @param local_dicionarios Diretório onde o dicionário da pesquisa em formato xls está armaezenado caso
#' \code{build_data = TRUE}
#'
#' @param periodos Lista de vetores com períodos de interesse no formato
#' \code{periodos = list(c(trimestre1, ano1), c(trimestre2, ano2), ...)}
#'
#' @encoding UTF-8
#'
#' @return Lista de dataframes, sendo cada entrada um trimestre/ano
#'
#' @examples
#' PNADC_2012 <- datazoom_pnadc(diretorio_dados = './Desktop',
#' diretorio_dicionario = './pnadcontinua/Desktop',
#' c(1,2012), c(2,2012))
#'
#' teste <- pnadc_painel_basico(build_data = FALSE,
#'                              dados_prontos = PNADC_2012)
#'
#' teste2 <- pnadc_painel_basico(build_data = TRUE,
#'                               local_dados = './pnadcontinua',
#'                               local_dicionario = './pnadcontinua/Dicionario_e_input',
#'                               periodos = list(c(1,2012), c(2,2012)))
#' @export
pnadc_painel_basico <- function(build_data = TRUE, ...){}


loop <- function(data,
                 interview = 2,
                 int_final = 5){
    return(NULL)
}

也就是说,我精确地获取了您的代码,在行NULL之后立即添加了#' @import tidyverse,并用简单的...替换了函数主体中的return(NULL)以具有语法上有效的代码。

然后我使用RStudio快捷键Ctrl-Shift-D使用了devtools::document()document()对我来说运行正常。

如果您在此步骤之后仍然遇到问题,则是由于软件包中的代码/注释导致您没有向我们展示。

之所以需要执行此步骤,是因为Roxygen注释通常用于记录对象或提供NAMESPACE指令。由于您在之后没有任何R对象或roclets,因此>

#' @import tidyverse

它会将下一个Roxygen注释解释为仍属于最后一个roclet @import。因此,您需要一个插入的R对象,可以使用NULL

© www.soinside.com 2019 - 2024. All rights reserved.