Convert 'haven labelled' to factor.

Hi,

I have a df imported from Stata using the haven package which is automatically changing the types of columns to "haven_labelled" as shown below. There are about 980 columns in total, and I want to convert them to factors while preserving the labels e.g. yes/no.

I tried the as.factor(df) command, but it is not working.

> class(df$smoke)
[1] "haven_labelled"
[2] "vctrs_vctr"    
[3] "double"

Please suggest to me if you know of any method to do this.

Thank you in advance!

haven library contains as_factor function that probably does what you want.
If not / not quite. Then please consider providing a reprex.