R random forest:data(x)有0行

时间:2014-03-24 12:09:19

标签: r random-forest

我正在使用randomForest包中的randomForest函数来查找最重要的变量: 我的数据框称为城市,我的响应变量是数字收入。

urban.random.forest <- randomForest(revenue ~ .,y=urban$revenue, data = urban, ntree=500,    keep.forest=FALSE,importance=TRUE,na.action = na.omit)

我收到以下错误:

Error in randomForest.default(m, y, ...) : data (x) has 0 rows

在源代码上它与x变量:

相关
n <- nrow(x)
p <- ncol(x)
if (n == 0) 
stop("data (x) has 0 rows")

但我无法理解x是什么。

2 个答案:

答案 0 :(得分:3)

我解决了这个问题。我有一些列,所有的值都是NA或相同的。我扔了它们就行了。我的列类是字符,数字和因子。

 candidatesnodata.index <- c()
 for (j in (1 : ncol(dataframe)))   {

   if (    is.numeric(dataframe[ ,j])  &  length(unique(as.numeric(dataframe[ ,j]))) == 1      )
     {candidatesnodata.index <- append(candidatesnodata.index,j)}
                                }

dataframe <- dataframe[ , - candidatesnodata.index]

答案 1 :(得分:2)

我遇到了类似的问题,这是因为我传入了一个字符串版本的电话

y ~ x1 + .... xn

到randomForest调用的公式参数。简单的解决方法是将输入转换为as.Formula()。

我希望这能节省一些时间!