R中的大数据集按列离散化

时间:2013-05-23 17:18:34

标签: r

我正在尝试使用RWeka包将R中的大量数值数据(30-50列,500k-1M行)离散化。

我原来的代码看起来像这样:

disc_data <- Discretize(class~., data=ndata, na.action=na.pass)

但我的记忆错误。我认为一次只调用一个功能上的函数会有所帮助(实际上是2列,包括类),所以我写了这个:

x <- cbind(ndata[1],ndata$class)
disc_data <- Discretize(class~., data=x, na.action=na.pass)

我打算在某种循环中运行并将结果组合在一起。但是,这给了我:

Error in model.frame.default(formula = class ~ ., data = x, na.action = na.pass) : 
object is not a matrix

要明确,Discretize会为数据采用data.frame,而不是矩阵......

如何通过调试或使用更好的方法解决内存问题来解决这个问题?

1 个答案:

答案 0 :(得分:0)

您是否检查了x中的列名称是什么?

当您运行cbind(ndata[1],ndata$class)时,第二列的名称为ndata$class不是 class。你需要的是

x <- cbind(ndata[1], class=ndata$class)