我正在处理一个包含名为“JobSatisfaction”的变量的数据集,该变量显示为int [1,2,3,4]。为了继续进行数据分析,我需要将此变量转换为序数变量。
JobSatisfaction应该有四个级别: 低,中,高,非常高
之后我需要进行线性回归。
答案 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