I want to create 7 dummy variables -one for each day, using dplyr
So far, I have managed to do it using the sjmisc
package and the to_dummy
An alternative solution using dummies()
which I think would be quicker would be
mydf = data.frame(x=rep(letters[1:9]),
day=c("Mon","Tues","Wed","Thurs","Fri","Sat","Sun","Fri","Mon"))
library(dummies)
mydf <- cbind(mydf, dummy(mydf$day, sep = "_"))
That yields
x day mydf_Fri mydf_Mon mydf_Sat mydf_Sun mydf_Thurs mydf_Tues mydf_Wed
1 a Mon 0 1 0 0 0 0 0
2 b Tues 0 0 0 0 0 1 0
3 c Wed 0 0 0 0 0 0 1
4 d Thurs 0 0 0 0 1 0 0
5 e Fri 1 0 0 0 0 0 0
6 f Sat 0 0 1 0 0 0 0
7 g Sun 0 0 0 1 0 0 0
8 h Fri 1 0 0 0 0 0 0
9 i Mon 0 1 0 0 0 0 0
Then you can use gsub()
to have cleaner names
names(mydf) = gsub("mydf_", "", names(mydf))
head(mydf)
x day Fri Mon Sat Sun Thurs Tues Wed
1 a Mon 0 1 0 0 0 0 0
2 b Tues 0 0 0 0 0 1 0
3 c Wed 0 0 0 0 0 0 1
4 d Thurs 0 0 0 0 1 0 0
5 e Fri 1 0 0 0 0 0 0
6 f Sat 0 0 1 0 0 0 0