使用“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
答案 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.frame 或 matrix 类。如果像许多人一样,您使用 tidyverse
包的函数导入或操作数据,那么您的数据集很可能是 tibble(类 tbl_df)因此在输入缺失值之前需要使用 as.data.frame()
进行转换。
正如 OP 所说,他/她的数据包含在 data.frame 中,问题可能来自变量的类。根据{{3}},如果您有日期变量(类date 或difftime),则会出现相同的错误消息。确保仅使用 numeric 或 factor 变量。