2017-05-30 3 views
0

Ich fange an, tidyr und dplyr zu verwenden. Ich habe folgenden Datenrahmen:Daten umformatieren

      email Assignment Stage Grade 
1      [email protected] course final 86.28 
2      [email protected] course first 68.87 
3      [email protected] course resub 38.06 
4      [email protected] course final 77.41 
... 

Ich möchte dies restrukturieren, so dass auf dem Wert der Stufe basierte (erster, RESUB oder final) I erstelle drei Spalten von dem einem Grad Spalte auf den Wert der Stufe entsprechen,

      email Assignment first resub final 
1      [email protected] course 100.0 100.0 100.0 
2      [email protected] course 100.0 100.0 100.0 
3      [email protected] course 100.0 100.0 100.0 
4      [email protected] course 100.0 100.0 100.0 

(Daten werden passend offensichtlich nicht wegen Ausschneiden/Einfügen.)

ich bin verwirrt, brauche ich eine separate() -Funktion, aber wie? Vielen Dank!

Antwort

1

Die spread() -Funktion von tidyr sollte Ihnen die Ergebnisse bringen, die Sie brauchen.

email <- c("[email protected]","[email protected]","[email protected]","[email protected]") 
Assignment <- rep("course",4) 
Stage <- c("final","first","resub","final") 
Grade <- c(86.28,68.87,38.06,77.41) 

df <- data.frame(email,Assignment,Stage,Grade,stringsAsFactors = FALSE) 

df <- df %>% 
     spread(Stage, Grade) 
Verwandte Themen