这是一个与其他帖子类似的问题,但我正在寻找一个比重新编码和类似的解决方案更自动化的解决方案。
我有一个有很多类别的列,即城市,我想在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)))