2017-07-24 7 views
1

Ich frage mich, ob es möglich ist dplyrmutate Funktion zu verwenden, um eine neue Spalte zu einem Datenrahmen, der eine Funktion von mehreren Zeilenwerten aus anderen Spalten ist. Zum Beispiel, wenn ich einen Datenrahmen hatte mit Spalten a und b und wollte eine neue Spalte c machen, wo c = a[n] + b[n +1], kann ich mutate mit einer for Schleife verwenden?Verwenden von muate mit Funktion, die n-ten Zeilenwert enthält

habe ich versucht, den Code unten, aber es hat nicht funktioniert:

for(n in 1:nrow(df)){ 
     df %>% 
       mutate(c = a[n] + b[n + 1])  
    } 
+0

Was Variable 'n'? –

Antwort

3

Die Funktion, die Sie wahrscheinlich, es zu suchen lead, einen Blick auf b durch einen Datensatz versetzt zu bekommen. Dann würde der Befehl

df %>% mutate(c=a + lead(b, 1)) 

Zum Beispiel sein,

> data.frame(a=1:10, b=1:10) %>% mutate(c = a + lead(b, 1)) 
    a b c 
1 1 1 3 
2 2 2 5 
3 3 3 7 
4 4 4 9 
5 5 5 11 
6 6 6 13 
7 7 7 15 
8 8 8 17 
9 9 9 19 
10 10 10 NA 
Verwandte Themen