Mit zusammenfassen mit gewogenen Mittelwert von dplyr in R
Ich versuche, ordentlich ein dataset, mit dplyr. Meine Variablen enthalten, die Prozentsätze und einfache Werte (in diesem Fall, Seitenaufrufe und Absprungrate). Ich habe versucht, zu fassen Sie folgendermaßen zusammen:
require(dplyr)
df<-df%>%
group_by(pagename)%>%
summarise(pageviews=sum(pageviews), bounceRate= weighted.mean(bounceRate,pageviews))
Aber dies gibt:
Error: 'x' and 'w' must have the same length
Mein dataset nicht alle NA ' s, in die sowohl die Seitenaufrufe und die Absprungrate.
Ich bin mir nicht sicher, was ich falsch mache, vielleicht summarise()
funktioniert nicht mit weighted.mean()
?
BEARBEITEN
Habe ich Hinzugefügt einige Daten:
### Source: local data frame [4 x 3]
### pagename bounceRate pageviews
(chr) (dbl) (dbl)
###1 url1 72.22222 1176
###2 url2 46.42857 733
###3 url2 76.92308 457
###4 url3 62.06897 601
- Einige Daten, bitte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
summarize()
Befehl ersetzt die Variablen in der Reihenfolge erscheinen Sie in den Befehl so, weil Sie ändern den Wert der Besucher, dass der neue Wert verwendet wird, in die gewichtet sind.meine. Es ist sicherer, zu verwenden, die unterschiedliche NamenUnd wenn Sie wirklich wollen, können Sie Sie umbenennen danach
df %>% group_by(pagename)%>% summarise(bounceRate = weighted.mean(bounceRate,pageviews), pageviews=sum(pageviews))
Habe ich die Lösung gefunden.
Da
summarise(pageviews=sum(pageviews)
ausgewertet vorbounceRate= weighted.mean(bounceRate,pageviews)
, die Länge derpageviews
reduziert wird und daher kürzer ist, alsbounceRate
, was löst den Fehler aus.Die Lösung ist einfach, wechseln Sie einfach Sie: