2016-05-01 5 views
1

GegebenWie ein data.frame zu nehmen und eine große Matrix in R

classifications.factor <- factor(c('x','x','x','y','y','y','z','z','z')) ; 
    questions.factor <- factor(c('a','b','c','a','b','c','a','b','c')) ; 
    answers.vector <- c(1,2,3,4,2,3,1,2,3) ; 

    result.data.frame = data.frame(classifications.factor, questions.factor, answers.vector) ; 

    colnames(result.data.frame) <- c('c','q','a') ; 

    result.data.frame ; 

die

 c q a 
    1 x a 1 
    2 x b 2 
    3 x c 3 
    4 y a 4 
    5 y b 2 
    6 y c 3 
    7 z a 1 
    8 z b 2 
    9 z c 3 

Was Befehl, dieses Ergebnis in so etwas wie

 c.x q.x a.x c.y q.y a.y c.z q.z a.z 
    1 x a 1 y a 4 z a 1 
    2 x b 2 y b 2 z b 2 
    3 x c 3 y c 3 z c 3 

zurück drehen zu lassen könnte ?

+1

Beachten Sie, dass Matrizen sind so konzipiert, halten nur eine Art von Werten, so Zeichen oder numerisch erfolgen. –

Antwort

3

Dies kann mit base R

do.call(cbind,split(result.data.frame, result.data.frame$c)) 
# x.c x.q x.a y.c y.q y.a z.c z.q z.a 
#1 x a 1 y a 4 z a 1 
#2 x b 2 y b 2 z b 2 
#3 x c 3 y c 3 z c 3