我想在我的包中包含mice :: mice函数来对我的数据进行插补 .
我使用Roxygen列出进口
#' @param data dataset to be used for imputation
#' @importFrom dplyr select_
#' @importFrom mice mice complete
#' @return A list
#' @export
#'
impute_data <- function(data, vars, seed)
{
data_used <- select_(data,vars)
mice_data <- complete(mice(data_used, seed = seed))
return(mice_data)
}
当我测试代码时,此函数工作正常,但是当我构建包并尝试使用它时,我收到以下错误
Error in check.method(setup, data) :
The following functions were not found: mice.impute.pmm,mice.impute.pmm, mice.impute.pmm, mice.impute.pmm, mice.impute.pmm
我试图在导入中添加错误中提到的所有函数,但它对结果没有任何影响 .
我错过了什么?我从未发现过这样的问题 .
2 回答
您忘记处理DESCRIPTION文件了!你只处理impute_data.R .
您的问题非常类似于:What roxygen should I put when I use a function of another package in my function
我在那里给了答案(请在发布任何问题之前搜索类似的问题) . 对于你的情况:
首先,要意识到你的
Step0 下载并安装必要的软件包:
Step1 将所有相关的".R"文件(yourfunction1.R,yourfunction2.R,yourfunction3.R,impute_data.R)放入R的工作目录 .
Step2 在运行以下命令之前,在R 's working directory: Be sure that there is no folder named 1239071 in your R'的工作目录中创建包骨架 . (来自R的控制台)
运行
package.skeleton
后,在R的工作目录中创建文件夹yourpackage .从Windows资源管理器中删除
Read-and-delete-me
文件 .删除YourR'sWorkingDirectory \ yourpackage \ man文件夹中的"yourpackage-package.Rd"文件
(不要删除YourR'sWorkingDirectory \ yourpackage \ man文件夹中的"yourpackage.Rd"文件!)
Step3 在".R"文件(impute_data.R)的序言末尾,添加以下内容(如果在步骤1中没有这样做):
Step4 在包的
DESCRIPTION
文件中,在Imports
部分中,添加:其中VersionNumber是您正在使用的鼠标包的版本号 . 您可以在RevolutionREnterprise的对象浏览器中右键单击任何函数(来自您的包)找到版本号;并在最终的.html帮助文件的底部 . 在那里,显示了包的版本号 .
在Step2中,package.skeleton自动生成一个NAMESPACE文件,其内容为:
不要手动处理此NAMESPACE文件 .
Step5 roxygenize你想创造的包裹("yourpackage")
在进行漫游时,yourpackage的NAMESPACE文件的内容会自动从
exportPattern("^[[:alpha:]]+")
转换为Step6 构建你的包:
(首先,从Windows资源管理器中删除YourR'sWorkingDirectoryFolder \ yourpackage文件夹中的"src-i386"和"src-x64"文件夹(如果有))
(再次确保YourR'sWorkingDirectory \ yourpackage \ man文件夹中没有"yourpackage-package.Rd"文件 . 如果有,请在构建之前删除它)
Step7 安装包裹:
Step8 通过加载包并在包中运行一个函数来检查一切顺利 .
Step9 检查您的包装是否可以装载到CRAN(Comprehensive R Archieve Network)(如果您想共享包裹):
(首先,从Windows资源管理器中删除YourR'sWorkingDirectoryFolder \ yourpackage文件夹中的"src-i386"和"src-x64"文件夹(如果有))
(再次确保YourR'sWorkingDirectory \ yourpackage \ man文件夹中没有"yourpackage-package.Rd"文件 . 如果有,请在检查前将其删除)
从DOS命令提示符:
开始 - cmd - 输入 . 传递给R 's working directory (your R'的工作目录是通过getwd()知道的并且做CRAN检查:
从R的控制台:
您好,即使帖子较旧,
最近,我遇到了同样的问题,Erdogan CEVHER和mickkk提出的解决方案对我没有用 . 我通过主动加载鼠标包来解决它,同时加载我自己的包 . 有关更多详细信息,请参阅R-Package-Dependencies .
除了包开发期间所需的步骤之外,我还建议:
Part 1: 将鼠标添加到包的DESCRIPTION文件中的
Depends:
( notImport:
)字段 .Part 2: 在NAMESPACE中使用
import(mice)
(仅适用于devtools::check()
)Part 3: 例如,使用
mice::
引用每个函数