I don't know if using dcast()
is the right way, but I want to reshape the following data.frame:
df <- data.frame(x=c("p1","p1","p2"),y=c("a","b","a"),z=c(14,14,16))
df
x y z
1 p1 a 14
2 p1 b 14
3 p2 a 16
so that it looks like this one:
df2 <- data.frame(x=c("p1","p2"),a=c(1,1),b=c(1,0),z=c(14,16))
x a b z
1 p1 1 1 14
2 p2 1 0 16
The variable y
in df
should be broken so that its elements are new variables, each dummy coded. All other variables (in this case just z
) are equal for each person (p1,p2 etc.). The only variable where a specific person p has different values is y
.
The reason I want this is because I need to merge this dataset with other ones by variable x
. Thing is, it needs to be one row per person (p1,p2 etc).