Here's two solutions, one is base R
, the other is based on dplyr
:
Illustrative data:
set.seed(123)
df <- data.frame(Genre = sample(c("Comedy", "Action", "Suspense", "Biography"), 10, replace = T))
Solution #1:
You can assign numerical values to your Genre
categories using ifelse
:
df$Genre_numerical <- ifelse(df$Genre == "Comedy", 1,
ifelse(df$Genre == "Action", 2,
ifelse(df$Genre == "Suspense", 3, 4)))
Solution #2:
library(dplyr)
df$Genre_numerical <- df %>%
mutate(Genre = case_when(Genre == "Comedy" ~ 1,
Genre == "Action" ~ 2,
Genre == "Suspense" ~ 3,
TRUE ~ 4))
Result:
The result is the same in either case:
df
Genre Genre_numerical
1 Action 2
2 Biography 4
3 Action 2
4 Biography 4
5 Biography 4
6 Comedy 1
7 Suspense 3
8 Biography 4
9 Suspense 3
10 Action 2