yupper
yupper

Reputation: 65

Create a list that contains a numeric value for each response to a categorical variable

I have a df with a categorical value which has 2 levels: Feed, Food

structure(c(2L, 2L, 1L, 2L, 1L, 2L), .Label = c("Feed", "Food"), class = "factor")

I want to create a list with a numeric value to match each categorical variable (ie. Feed = 0, Food = 1) The list matches with the categorical variable to form 2 columns

Probably very simple...every time I've attempted to put the two together, both columns have ended up numeric

Upvotes: 0

Views: 709

Answers (1)

Ahorn
Ahorn

Reputation: 3876

Like this?

library(dplyr)
df <- structure(c(2L, 2L, 1L, 2L, 1L, 2L), .Label = c("Feed", "Food"), class = "factor")

df <- tibble("foods" = df)

df %>% 
  mutate(numeric = as.numeric(foods))

# A tibble: 6 x 2
  foods numeric
  <fct>   <dbl>
1 Food        2
2 Food        2
3 Feed        1
4 Food        2
5 Feed        1
6 Food        2

Or like this if you want 0/1 as numbers.

df %>% 
  mutate(numeric = as.numeric(foods) - 1)

Upvotes: 2

Related Questions