如何将字符/因子转换为整数?

时间:2015-07-09 17:02:16

标签: r

我知道经常被问到这个问题。但是,通过应用之前的建议,我仍然对两件事情感到困惑。

  1. 如何将多项值转换为整数?

  2. 如何在分析后将整数恢复为因子/字符?

      library(car)
    
      data(Prestige)
      View(Prestige)
      # here I convert directly from character which seems quite useless
      Prestige$TYPE<-as.numeric(levels(Prestige$type))
      # here I generate factors
      Prestige$type<-as.factor(Prestige$type)
      # and try to convert afterwards. doesnt work either
      Prestige$TYPE<-as.numeric(levels(Prestige$type))
    
  3. 基本上,我想在type中提取三个级别而不用手动重命名。

1 个答案:

答案 0 :(得分:2)

factor的向量具有名为levels的属性。 levels函数作用于该属性,而不作为对载体本身。

library(car)
data(Prestige)

length(Prestige$type) # 102

levels(Prestige$type) # Notice that this has length 3.

如果您想要矢量的数值,请使用

as.numeric(Prestige$type)

bc不是1prof现在是2wc现在是3

如果您需要重构该因素,请使用

factor(Prestige$type, 1:3, c("bc", "prof", "wc"))

但作为一般规则,除非您需要更改类别,否则最好不要改变您的因素。如果您需要数据下的数字代码,请创建一个新变量

Prestige$type_numeric <- as.numeric(Prestige$type)