I have an R dataframe where one of the columns is a factor whose levels have an implicit ordering. How can I convert the factor levels to specific integers in the following manner:
- "Strongly disagree" --> 1
- "Somewhat disagree" --> 2
- "Neutral" --> 3
- "Somewhat agree" --> 4
- "Strongly agree" --> 5
For example, here is my data frame:
agree <- c("Strongly agree", "Somewhat disagree", "Somewhat agree",
           "Neutral", "Strongly agree", "Strongly disagree", "Neutral")
age <- c(41, 35, 29, 42, 31, 22, 58)
df <- data.frame(age, agree)
df
#   age             agree
# 1  41    Strongly agree
# 2  35 Somewhat disagree
# 3  29    Somewhat agree
# 4  42           Neutral
# 5  31    Strongly agree
# 6  22 Strongly disagree
# 7  58           Neutral
str(df)
# 'data.frame': 7 obs. of  2 variables:
#  $ age  : num  41 35 29 42 31 22 58
#  $ agree: Factor w/ 5 levels "Neutral","Somewhat agree",..: 4 3 2 1 4 5 1
Now, I would like to convert the agree column to be an integer column using the mapping that I showed above.
I already searched these other questions about converting factor to integer, but they do not related to maintaining the factor ordering.
"How to convert a factor to an integer\numeric without a loss of information?"
 
     
     
     
    