自动将数值分配给分类列的R方法

问题描述

这是与其他帖子类似的问题,但我正在寻找一种比重新编码和类似解决方案更自动化的解决方案。

我有一个包含许多类别的列,即城市,并想在R中创建一个新列,该列会自动将城市分配给数值,如下所示:

City    CityCode
New York  0
New York  0
Boston    1
Boston    1
Chicago   2
New Haven 3

我大约有1000个城市,因此单独编码没有意义。

解决方法

data$CityCode = as.integer(factor(data$City))将起作用,默认情况下按字母顺序对城市进行排序。为了使它们按照在数据中出现的顺序排列,data$CityCode = as.integer(factor(data$City,levels = unique(data$City)))

很少有建模应用程序是个好主意。 (我无法考虑任何问题...)请确保您知道自己在做什么。

,

另一种选择是match

data$CityCode <- with(data,match(City,unique(City)))