Ich habe einen Datenrahmen mit einer ID-Spalte, eine Datumsspalte (12 Monate für jede ID), und ich habe 23 numerische Variablen. Ich möchte die prozentuale Veränderung nach Monat innerhalb jeder ID erhalten. Ich verwende das quantmod-Paket, um die prozentuale Änderung zu erhalten. HierWie kann ich die prozentuale Änderung innerhalb einer Gruppe für mehrere Spalten in R berechnen?
ist ein Beispiel mit nur drei Säulen (der Einfachheit halber):
ID Date V1 V2 V3
1 Jan 2 3 5
1 Feb 3 4 6
1 Mar 7 8 9
2 Jan 1 1 1
2 Feb 2 3 4
2 Mar 7 8 8
Ich versuchte dplyr und die summarise_each Funktion zu nutzen, aber das war nicht erfolgreich. Genauer gesagt, habe ich versucht, die folgenden (Zug der Name des Datensatzes ist):
library(dplyr)
library(quantmod)
group1<-group_by(train,EXAMID)
foo<-function(x){
return(Delt(x))
}
summarise_each(group1,funs(foo))
ich auch versucht, die tun Funktion in dplyr zu verwenden, aber ich war mit dem nicht erfolgreich entweder (eine schlechte Nacht, die ich mit vermuten!).
Ich denke, dass das Problem die Delt-Funktion ist. Als ich Delt mit der Summenfunktion ersetzen:
foo<-function(x){
return(sum(x))
}
summarise_each(group1,funs(foo))
Das Ergebnis ist, dass jede Variable für jede ID über das Datum summiert wird. Wie kann sich der prozentuale Anteil für jede ID im Monatsvergleich ändern?
bekomme ich folgende Fehlermeldung: Fehler: einen einzelnen Wert , dass, obwohl eine sehr gute Idee ist zu erwarten. – mmmmmmmmmm
@cwh_UCF Verwenden Sie muate anstelle von summarize (das einen einzelnen Wert zurückgeben soll): 'DF%>% group_by (ID)%>% mutate_each (Spaß (pct), c (V1, V2, V3))' – Frank
@ Frank sollte das nicht eine Antwort, sondern eine Antwort sein. Fragen Sie einfach :) –