R 已创建的包未运行命名空间文件中导入包的函数
这是我的第一个包裹。下面是my.R文件的运行方式,其中包含3个函数,其中两个要导出。它们的实际内容无关紧要,只是它使用了大量的R 已创建的包未运行命名空间文件中导入包的函数,r,namespaces,devtools,R,Namespaces,Devtools,这是我的第一个包裹。下面是my.R文件的运行方式,其中包含3个函数,其中两个要导出。它们的实际内容无关紧要,只是它使用了大量的tidyverse函数 #' @import tidyverse #' @importFrom labelled set_variable_labels var_label #' @importFrom readxl read_excel cell_cols NULL #' Carregando dados brutos #' #' @param diretorio_
tidyverse
函数
#' @import tidyverse
#' @importFrom labelled set_variable_labels var_label
#' @importFrom readxl read_excel cell_cols
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, ...){
return(NULL)
}
如果未事先设置库(tidyverse)
、库(带标签)
和库(readxl)
,则安装和加载包后不会运行包中的函数
除了其他必需的部分之外,我的描述文件还包含以下内容:
Imports:
labelled,
readxl,
tidyverse
有人能帮忙吗?将
tidyverse
从Imports
移动到DESCRIPTION
中的将使其有效,但如果您正在开发正式软件包,则不推荐使用此方法。就像@Bruno评论的那样:
>usethis::use_包(“tidyverse”)
错误:“tidyverse”是一个元包,使用它很少是一个好主意
靠它。请确定所需的特定基础包
提供您需要的功能,并依赖它。获取数据
分析使用包结构但未实现
正式的R包,在依赖项中添加“tidyverse”是合理的
妥协。调用'use_package(“tidyverse”,type=“dependens”)`
这
将其放在Imports
中不起作用的原因是,只有列出的包导出的变量才会放在搜索路径上,如以下部分所述:
只有导出的变量才会放置在附着的框架中。加载从其他包导入变量的包将导致这些其他包也被加载(除非它们已经被加载),但这些隐式加载不会将它们放置在搜索路径上。因此,包中的代码只能依赖于其自己名称空间中的对象,并且其导入(包括基本名称空间)是可见的
tidyverse
作为一个元包,不导出其包含的包的函数,而是使用.onAttach
钩子来附加这些包(有关详细信息,请参见tidyverse::.onAttach
)。这意味着,如果使用上述方法导入了tidyverse
,那么该钩子将不会运行,其他包导出的变量也不会添加到搜索路径中,这就是您无法访问它们的原因
将tidyverse
放在dependens
下会运行.onAttach
钩子,因此也会附加其他包。我认为您不能导入tidyverse为什么不能?我使用了它的很多功能。不管怎样,即使我事先加载了tidyverse,我仍然会遇到其他软件包的问题我不是在问为什么,我也想,我只是从来没能做到,请尝试使用此软件包并使用this::use_软件包查看它显示了什么您是否正在尝试从.zip二进制版本或a.tar.gz源代码版本在另一台计算机上安装此软件包?我还没有尝试。我只是想把它安装在我自己的电脑上
Imports:
labelled,
readxl,
tidyverse