将数字变量覆盖到序数变量中

  • 本文关键字:变量 序数 覆盖 数字 r
  • 更新时间 :
  • 英文 :


我正在处理一个包含一个称为" jobs Aftaction"的变量的数据集,该变量显示为int [1,2,3,4]。为了进行我的数据分析,我需要将此变量转换为序数变量。

Jobsatifaction应该具有四个级别:低,中,高,很高

之后,我需要进行线性回归。

您只能使用ordered()。这是一个示例

df <- data.frame(code = rep(letters[1:4], 5),
                 JobSatisfaction =  sample(rep(1:4,5))) # data frame df
df$JobSatisfaction <- ordered(df$JobSatisfaction, levels = 1:4,
                              labels = c("low", "medium", "high", "veryhigh")) # conversion

您要求的解决方案将整数数字变量转换为有序的分类变量。

我建议您使用软件包dplyr,因为对于此任务,它是完美的。

    dplyr::mutate(my_df,  
                      JobSatisfaction = 
                          dplyr::recode_factor(JobSatisfaction,   
                             `1`="low", `2`="medium",  
                             `3`="high", `4` = "very high",  
                             .ordered = TRUE)  

recode用于映射变量到新值的值

参数.ordered = TRUE允许我们定义low < medium < high < very_high

您可以使用factor()

JobSatisfaction =  sample(rep(1:4,10)) #Create dataset
JobSatisfaction = factor(JobSatisfaction,levels=1:4,labels = c("low","medium","high","veryhigh"),ordered=T)

注意: @ang注释后的第二行更正。

最新更新