2015-12-15 8 views
6

Ich habe eine Tabelle erstellt, die eine Liste von 1000 Songs nach Geschlecht, Thema usw. organisiert enthält. Ich möchte wissen, wie viele Jahre wiederholt werden und wie viele in einer anderen Kategorie sind. Ich habe versucht:Tabulate oben n die meisten wiederholten Werte einschließlich andere

sort(summary(as.factor(canciones$YEAR)), decreasing=T)[1:3] 

Und der Ausgang ist:

1968 1966 1979 
    39 37 34 

Aber ich will es

1968 1966 1979 Others 
    39 37 34 950 
+1

Können Sie ein reproduzierbares und verallgemeinerbar Beispiel dieser Frage liefern, so dass wir (und zukünftige Leser) Ihr Problem neu erstellen können? – Nancy

+2

Warum würden Sie 'table' hier nicht verwenden? – TARehman

Antwort

8

Hier sind einige Beispieldaten sein.

Wir können die gesamte Zusammenfassung ausführen, unterteilen die ersten drei, dann berechnen Sie die verbleibenden Werte als "Andere" und heften Sie es am Ende. Außerdem glaube ich, dass man einfach table() anstelle von summary(factor()) verwenden kann, da summary.factor() dies ohnehin unter der Haube tut.

xx <- sort(table(x), decreasing = TRUE) 
c(xx[1:3], Others = sum(xx[-(1:3)])) 
#  5  2  4 Others 
# 64  61  57 318 

Hinweis: Es kann oder auch nicht schneller sein Others = length(x) - sum(xx[1:3]) zu verwenden.

0

Ich habe mit einem Parameter namens maxsum gelöst

plot_data <- sort(summary(as.factor(canciones$YEAR),maxsum=3), decreasing=T)[1:3] 
Verwandte Themen