RPART 对连续变量、有序变量和分类变量使用不同的分割程序。有没有办法“告知”RPART变量的类型呢?举个例子,我有一个整数值的有序变量(1到5)。目前,我需要将其转换为字符类型,这样RPART就不会像处理连续变量那样对其进行分割。
我希望避免为了RPART而更改所有变量类型。我更希望能以某种方式声明变量类型。
谢谢。
回答:
问题在于,R 如何知道 foo <- c(1,2,3,2,4,5,1,5)
(例如)不是一个数值变量呢?如果你查看 foo
的类别,你会发现它是数值型的。
R> class(foo)[1] "numeric"
你的问题在于,在最基本的层面上,你没有告诉R数据类型是什么。在这种情况下,简单的解决方案不是将其转换为字符向量,而是将其转换为有序因子。仅仅因为这是数据的本质!rpart 应该会识别到因子特性并相应地处理它。
因此,告知rpart变量是有序的办法是告诉R它是有序的
foo <- as.ordered(foo)R> foo[1] 1 2 3 2 4 5 1 5Levels: 1 < 2 < 3 < 4 < 5
我猜你因为没有告诉R数据的性质而错过了R的其他功能。R 对数据做出了不正确的假设。