R中“missforest”出错

时间:2017-09-08 22:33:44

标签: r imputation

使用“missforest”软件包在R中执行数据插补时需要帮助以解决以下错误。

> imputed<- missForest(dummy, maxiter = 10, ntree = 100, variablewise = TRUE,
+                      decreasing = TRUE, verbose = TRUE,
+                      mtry = floor(sqrt(ncol(dummy))), replace = TRUE)
Error in sample.int(length(x), size, replace, prob) : 
  invalid first argument

4 个答案:

答案 0 :(得分:1)

有同样的问题。用as.data.frame转换xmis对象帮助。在你的情况下,它将是这样的:

dummy <- as.data.frame(dummy)    
imputed<- missForest(dummy, maxiter = 10, ntree = 100, variablewise = TRUE,
                      decreasing = TRUE, verbose = TRUE,
                      mtry = floor(sqrt(ncol(dummy))), replace = TRUE)

答案 1 :(得分:0)

如果使用fread()读取数据,请尝试使用read.csv()代替。使用fread()读取数据时,即使稍后通过使用as.data.frame()将data.table转换为data.frame之后,我也遇到相同的问题。但是,稍后我使用read.csv读取了数据,问题得以解决。

答案 2 :(得分:0)

我知道这是2岁,但是我偶然遇到了这个问题,试图解决这个问题并最终解决了这个问题,所以我猜想其他人也会这样做。

我拥有肿瘤学数据,并且在我的代码(站点代码1-8)旁边有书面说明(癌症所在)。您需要删除书面说明,以便您的电子表格/数据仅包含编码条目,然后missForest可以使用。

答案 3 :(得分:0)

正如其他人所指出的,missForest() 要求输入数据属于 data.framematrix 类。如果像许多人一样,您使用 tidyverse 包的函数导入或操作数据,那么您的数据集很可能是 tibble(类 tbl_df)因此在输入缺失值之前需要使用 as.data.frame() 进行转换。
正如 OP 所说,他/她的数据包含在 data.frame 中,问题可能来自变量的类。根据{{​​3}},如果您有日期变量(类datedifftime),则会出现相同的错误消息。确保仅使用 numericfactor 变量。