Making indicator variables out of lists in r
문제
I'm having a data reshaping problem that I could use some help.
ID X1 X2 X3 X4 X5
6001 Certificate Associate Bachelor's Master's Doctoral
5001 Certificate Associate Bachelor's
3311 Certificate Associate Bachelor's
1981 Certificate Associate Bachelor's Master's
4001 Associate Bachelor's Master's
2003 Associate Bachelor's Master's Doctoral
2017 Certificate Associate
1001 Associate Bachelor's Master's
5002 Bachelor's
I need to make these into dummy variables
ID Certificate Associates Bachelor Master Doctoral
6001 1 1 1 1 1
5001 1 1 1 0 0
2017 1 1 0 0 0
Any suggestions?
해결책
Try the reshape2
package. I've assumed your dataset is called df
:
require(reshape2)
# First, melt your data, using
m.df = melt(df, id.vars="ID")
# Then `cast` it
dcast(m.df, ID ~ value, length)
# ID Var.2 Associate Bachelor's Certificate Doctoral Master's
# 1 1001 2 1 1 0 0 1
# 2 1981 1 1 1 1 0 1
# 3 2003 1 1 1 0 1 1
# 4 2017 3 1 0 1 0 0
# 5 3311 2 1 1 1 0 0
# 6 4001 2 1 1 0 0 1
# 7 5001 2 1 1 1 0 0
# 8 5002 4 0 1 0 0 0
# 9 6001 0 1 1 1 1 1
I haven't tested it, but if you make your factors ordered, it might control the order of the output columns.
제휴하지 않습니다 StackOverflow