how to convert factor levels to integer in r

前端 未结 5 541
盖世英雄少女心
盖世英雄少女心 2021-01-21 10:50

I have following dataframe in R

  ID      Season      Year       Weekday
  1       Winter      2017       Monday
  2       Winter      2018       Tuesday
  3             


        
5条回答
  •  死守一世寂寞
    2021-01-21 11:22

    You can simply use as.numeric() to convert a factor to a numeric. Each value will be changed to the corresponding integer that that factor level represents:

    library(dplyr)
    
    ### Change factor levels to the levels you specified
    otest_xgb$Season  <- factor(otest_xgb$Season , levels = c("Winter", "Summer"))
    otest_xgb$Year    <- factor(otest_xgb$Year   , levels = c(2017, 2018))
    otest_xgb$Weekday <- factor(otest_xgb$Weekday, levels = c("Monday", "Tuesday", "Wednesday"))
    
    otest_xgb %>% 
      dplyr::mutate_at(c("Season", "Year", "Weekday"), as.numeric)
    
    
    # ID Season Year Weekday
    # 1  1      1    1       1
    # 2  2      1    2       2
    # 3  3      2    1       1
    # 4  4      2    2      NA
    

提交回复
热议问题