将数字变量转换为序数变量

时间:2017-12-21 15:01:02

标签: r

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

JobSatisfaction应该有四个级别: 低,中,高,非常高

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

3 个答案:

答案 0 :(得分:5)

您可以使用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

答案 1 :(得分:1)

您可以使用factor()

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

注意:在@ANG评论后更正了第二行。

答案 2 :(得分:-1)

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

我建议您使用包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