2016-07-04 5 views
0

sind meine Daten wie folgt strukturiert:Wie erstelle ich eine neue Spalte aus einer Kombination von vorhandenen Zeichen- und numerischen Spalten?

Name Drill Movement Repetition DV  
1 RUTH 90_Turn Sprint   1 10 
2 RUTH 90_Turn Sprint   1 12 
2 RUTH 90_Turn Sprint   2 12 
2 RUTH 90_Turn Sprint   2 9  
3 RUTH 90_Turn Sprint   3 14 
3 RUTH 90_Turn Sprint   3 12  
4 RUTH 90_Turn Walk   1 13 
4 RUTH 90_Turn Walk   1 17 
5 RUTH 90_Turn Walk   2 11 
5 RUTH 90_Turn Walk   2 15  

I Trial in einer Spalte hinzufügen möchten, die einen Code für jede einzelne Kombination von Movement und Repetition, wie enthält:

Name Drill Movement Repetition DV  Trial 
1 RUTH 90_Turn Sprint   1 10 D90_Sprint1 
2 RUTH 90_Turn Sprint   1 12 D90_Sprint1 
2 RUTH 90_Turn Sprint   2 12 D90_Sprint2 
2 RUTH 90_Turn Sprint   2 9 D90_Sprint2 
3 RUTH 90_Turn Sprint   3 14 D90_Sprint3 
3 RUTH 90_Turn Sprint   3 12 D90_Sprint3 
4 RUTH 90_Turn Walk   1 13 D90_Walk1 
4 RUTH 90_Turn Walk   1 17 D90_Walk1 
5 RUTH 90_Turn Walk   2 11 D90_Walk2 
5 RUTH 90_Turn Walk   2 15 D90_Walk2 

Dies geschieht berücksichtigt die Drill, die konstant bleibt, zusammen mit Name - die data.frame besteht nur aus Ruths Daten für diese Übung. Die DV wird mindestens zweimal pro Movement und Repetition gemessen.

Ist es möglich, dies zu tun?

Mein Datenrahmen ist 10140 Obs. Also wäre eine schnelle Lösung ideal. Vielen Dank!

+0

Vielleicht 'paste0 (" D90_ ", df1 $ Bewegung, df1 $ Wiederholung)' – akrun

+0

Wenn Sie nicht zu sehr besorgt über das Ausgabeformat sind, ist es im Wesentlichen Interaktion (dat [c ("Drill", "Movement" , "Wiederholung")]) ' – thelatemail

Antwort

1

Wir paste

df1$Trial <- paste0("D90_", df1$Movement, df1$Repetition) 

verwenden Wenn '90' von der 'Drill' Säule kommt

df1$Trial <- paste0("D", sub("_.*", "", df1$Drill), "_", df1$Movement, df1$Repetition) 

Oder mit sprintf

sprintf("D%s_%s%d", sub("_.*", "", df1$Drill), df1$Movement, df1$Repetition) 
#[1] "D90_Sprint1" "D90_Sprint1" "D90_Sprint2" "D90_Sprint2" "D90_Sprint3" "D90_Sprint3" "D90_Walk1" "D90_Walk1" "D90_Walk2" 
#[10] "D90_Walk2" 
+1

Ich fühle mich albern, dass es so einfach war ... danke! – user2716568

1

Verwendung paste0():

df$Trial <- paste0(sub("_.*", "", df$Drill), 
        "_", 
        df$Movement, 
        df$Repetition) 

Der Aufruf an sub() extrahiert die Drill Komponente der endgültigen Trial Zeichenfolge.

Verwandte Themen