Recode categorical variable to binary (0/1)

Could someone help me regarding the use of ifelse.

I have a data.frame (dat) with a categorical variable/factor called Q1 (dat$Q1). dat$Q1 was coded as 1,2,3 or 4. I need to create a new column data$new1 based on the following rule:

if dat$Q1 == 3 then dat$new1 should be 1. otherwise, dat$new1 should be 0.

What is the most efficient way of doing this please?


Use ifelse as in:

dat$new1 <- ifelse(dat$Q1==3, 1, 0)

Just:

 dat$new1 <-  0+(dat$Q1==3)  # or use as.numeric(.)