I have a data table, and I try Reshaping it but it doesn\'t work, how do I do this:
I have a data table:
Name | Value
-------------
Bob | 8,9,10
-------
The functions you are looking for are stack and contrasts.
data<-list(bob=c(8,9,10),mike=c(2,3,4),sandr=c(5,6,7))
as.data.frame(data)
bob mike sandr 1 8 2 5 2 9 3 6 3 10 4 7
stack(data)
values ind 1 8 bob 2 9 bob 3 10 bob 4 2 mike 5 3 mike 6 4 mike 7 5 sandr 8 6 sandr 9 7 sandr
df<-stack(data)
contrasts(df$ind,contrasts=FALSE)[df$ind,df$ind]
bob bob bob mike mike mike sandr sandr sandr
bob 1 1 1 0 0 0 0 0 0
bob 1 1 1 0 0 0 0 0 0
bob 1 1 1 0 0 0 0 0 0
mike 0 0 0 1 1 1 0 0 0
mike 0 0 0 1 1 1 0 0 0
mike 0 0 0 1 1 1 0 0 0
sandr 0 0 0 0 0 0 1 1 1
sandr 0 0 0 0 0 0 1 1 1
sandr 0 0 0 0 0 0 1 1 1
You can assign row names and column names and sort if desired
im<-contrasts(df$ind,contrasts=FALSE)[df$ind,df$ind]
rownames(im)<-df$values
colnames(im)<-df$values