我有一个简单的任务,但我无法解决我的问题。R中新列中的综合因子
我有一个巨大的数据帧,并希望执行KNN,但不能这样做,因为我得到以下错误:
Error: factor predictors must have at most 32 levels
到目前为止好。我的想法是聚集列,因此我得到更少的因素。
str(only_savings_medium$MaterialGroupCode)
Factor w/ 40 levels "1A","1B","1C",..: 11 11 11 15 15 15 15 15 15 15 ...
有40个级别 “代码” 的在 “1A” 的形式, “1B”,..., “2B”, “2D”,..., “3A”,...“ 3D“,”4B“,”4C“,...,”5A“,...,”5Z“。基本上我想检查因素是否包含一个1,2,3,4或5并将其分配给新列。带有1(任何字母)的所有代码将被分配为1,2(任意字母)至2,依此类推。最后,应该有一个只有5个因素的新专栏,每个专栏包含所有较小的因素。我不确定如何解释,并希望您了解我的问题。
编辑:我会尽量扩大我的解释。这里是S数据帧的一部分:
正如你所看到的,有不同的材料组码一栏。有40个级别。我需要:为此数据框创建新列。此列包含5个级别(1,2,3,4或5)。如果我们以我的屏幕截图为例 - 我们将有一个新的库仑,其级别如下:2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3 ...,3。基本上每1A - 1Z,被分配到新列的级别1,每2A - 2Z被分配到2,依此类推。
不是。错误是您有一个或多个因子(列)的许多级别。你应该减少关卡的数量。以'cut'为例。 – agstudy
我们可以删除字母,并更新因子水平。 – zx8754
@agstudy是的,这就是我想要做的。减少级别的数量,从40到5. – Pixelements