【问题标题】:Error in eval() when using randomForest in R在 R 中使用 randomForest 时 eval() 出错
【发布时间】:2020-09-17 04:35:03
【问题描述】:

我正在尝试使用randomForest 命令

我有一个稀疏矩阵,称为计数,包含单细胞表达数据,还有另一个变量 identity,它具有细胞类型

counts <- t(as.matrix(CountsMatrix))

names(counts) <- make.names(names(counts))

smp_size <- floor(nrow(counts)*0.7)
train_ind <- sample(c(1:nrow(counts)), smp_size)

x_train <- counts[train_ind,]
x_test <- counts[-train_ind,]

y_train <- identity[train_ind]
y_test <- identity[-train_ind]

train_set <- cbind(data.frame(Identity = y_train), as.data.frame(x_train))
forest <- randomForest(Identity ~., data = train_set)

我已将所有数据放在一个数据框中,并在尝试修复错误时添加了 names(counts) &lt;- make.names(names(counts)) 行。

运行此代码时出现错误:

Error in eval(predvars, data, env) : object '0610005C13Rik' not found

我的数据有 16519 列,每列的名称类似于 0610005C13Rik,如果这是问题,我不知道如何重命名所有列。

【问题讨论】:

    标签: r regression random-forest


    【解决方案1】:

    让我们尝试一些示例数据集,避免使用函数名称作为变量,身份是一个函数,所以:

    library(randomForest)
    library(Seurat)
    CountsMatrix = pbmc_small[["RNA"]]@data
    ident = factor(as.numeric(Idents(pbmc_small)==1))
    

    刚好合适:

    fit = randomForest(ident ~ .,data=cbind(ident,counts))
    Error in eval(predvars, data, env) : object 'HLA-DRA' not found
    

    这里我们像你一样使用 make.names:

    counts <- t(as.matrix(CountsMatrix))
    names(counts) <- make.names(names(counts))
    

    你有一个矩阵,names() 不起作用。我们可以看看:

    head(names(counts))
    [1] NA NA NA NA NA NA 
    

    这是您需要修复的列名:

    colnames(counts) <- make.names(colnames(counts))
    
    smp_size <- floor(nrow(counts)*0.7)
    train_ind <- sample(c(1:nrow(counts)), smp_size)
    
    x_train <- counts[train_ind,]
    x_test <- counts[-train_ind,]
    
    y_train <- ident[train_ind]
    y_test <- ident[-train_ind]
    
    train_set <- cbind(data.frame(Identity = y_train), as.data.frame(x_train))
    forest <- randomForest(Identity ~., data = train_set)
    

    或者你可以简单地这样做:

    forest <- randomForest(x=x_train,y=y_train)
    

    【讨论】:

      猜你喜欢
      • 2013-11-27
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      相关资源
      最近更新 更多