在R包中导入mice函数时出错

在R包中导入mice函数时出错,r,r-package,r-mice,R,R Package,R Mice,我想在我的包中包含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

我想在我的包中包含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)
}
我试图将错误中提到的所有函数添加到导入中,但对结果没有任何影响


我错过了什么?我从未发现过这样的问题。

您忘记处理描述文件了!您只处理插补_数据。R

你的问题非常类似于:

我在那里给出了答案(请在发布任何问题之前搜索类似的问题)。对于您的情况:

首先,意识到你的

sessionInfo() 
getwd() # your R's working directory
.libPaths() # your R's library location
步骤0下载并安装必要的软件包:

library(roxygen2)
library(devtools)
library(digest)
步骤1将所有相关的“.R”文件(yourfunction1.R、yourfunction2.R、yourfunction3.R、impute_data.R)放入R的工作目录

步骤2在R的工作目录中创建包框架: 在运行以下命令之前,请确保R的工作目录中没有名为“yourpackage”的文件夹。(从驾驶室控制台)

运行
package.skeleton
后,将在R的工作目录中创建文件夹yourpackage

从Windows资源管理器中删除
读取并删除我的文件。
删除您的工作目录\yourpackage\man文件夹中的“yourpackage package.Rd”文件
(不要删除r'sWorkingDirectory\yourpackage\man文件夹中的“yourpackage.Rd”文件!)

第3步在“.R”文件(impute_data.R)序言的末尾,输入以下内容(如果您在第1步中没有这样做):

其中VersionNumber是您正在使用的mice包的版本号。在RevolutionREnterprise的对象浏览器中,右键单击任意函数(来自您的软件包),即可找到版本号;并转到生成的.html帮助文件的底部。在这里,显示了软件包的版本号

在步骤2中,package.skeleton自动生成一个名称空间文件,其内容为:

exportPattern("^[[:alpha:]]+")
不要手动处理此命名空间文件

步骤5将您要创建的包(“您的包”)还原

在roxygenization之后,包的名称空间文件的内容将自动从
exportPattern(“^[:alpha:]+”)
转换为

# Generated by roxygen2: do not edit by hand

export(impute_data)
importFrom(mice,mice)
importFrom(mice,complete)
步骤6构建您的包:
(首先,从Windows资源管理器中删除R'sWorkingDirectoryFolder\yourpackage文件夹中的“src-i386”和“src-x64”文件夹(如果有)
(再次确保您的R'sWorkingDirectory\yourpackage\man文件夹中没有“yourpackage package.Rd”文件。如果有,请在生成之前将其删除)

步骤7安装软件包:

install("yourpackage")
第8步加载包并在包中运行函数,检查一切是否正常

library(yourpackage)
impute_data(a,b,1235) # "impute_data" is the function in the package "yourpackage"
步骤9检查您的软件包是否可加载到CRAN(综合R Archieve网络)(如果您想共享您的软件包):

(首先,从Windows资源管理器中删除R'sWorkingDirectoryFolder\yourpackage文件夹中的“src-i386”和“src-x64”文件夹(如果有)
(再次确保您的R'sWorkingDirectory\yourpackage\man文件夹中没有“yourpackage package.Rd”文件。如果有,请在检查之前将其删除)

从DOS命令提示符:
Start–cmd–Enter。传递到R的工作目录(您的R的工作目录通过getwd()已知)并执行CRAN检查:

cd C:\Users\User\Documents\Revolution
R CMD check yourpackage
从R的控制台:

devtools::check("C:/Users/User/Documents/Revolution/yourpackage")

您好,即使帖子比较老

最近,我遇到了同样的问题,并提出了解决方案 埃尔多安·切赫和米克克不为我工作。我通过主动加载mice包解决了这个问题,同时加载了我自己的包。有关更多详细信息,请咨询

除了软件包开发过程中所需的步骤外,我还建议:

第1部分:将鼠标添加到包描述文件中的
依赖项:
导入:
)字段

Depends: mice (>= VERSIONNUMBER)
第2部分:在命名空间中使用
导入(鼠标)
(仅适用于
devtools::check()

第3部分:例如,使用
鼠标引用每个函数:

mice::mice(data, method="pmm")

嗨,我使用的是RStudio,所有这些东西要么是默认处理的,要么已经处理好了(我自己),很抱歉我忘了在问题中添加这个。这根本不起作用。但我找到了解决方案,显然,mice包要求您在文档中设置“@importMethodsFrom mice”。这将使它工作。小更正,显然我发现的解决方案没有工作。。。我发现了一个更好的解决方案,每次名称空间移动时都会引用。。老鼠:完成,老鼠:老鼠。不优雅,但它的工作。
install("yourpackage")
library(yourpackage)
impute_data(a,b,1235) # "impute_data" is the function in the package "yourpackage"
cd C:\Users\User\Documents\Revolution
R CMD check yourpackage
devtools::check("C:/Users/User/Documents/Revolution/yourpackage")
Depends: mice (>= VERSIONNUMBER)
import(mice)
mice::mice(data, method="pmm")