【问题标题】:Error in "missforest" in RR中的“missforest”错误
【发布时间】:2018-02-17 21:40:06
【问题描述】:

在使用“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

【问题讨论】:

    标签: r imputation


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        遇到了同样的问题。使用 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)
        

        【讨论】:

        • 我是这么想的,然后就这么做了。即便如此,我也面临着这个问题。任何其他可能导致错误的原因。
        • 在您的情况下,假人的类别是什么?
        • > class(dummy) [1] "data.frame"
        • 我删除了每列的“属性”(例如标签)
        猜你喜欢
        • 1970-01-01
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-17
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多