2015-12-15 7 views
6

Stworzyłem tabelę, która zawiera listę 1000 piosenek uporządkowanych według płci, motywu itp. Chcę wiedzieć, ile lat się powtórzyło i ile jest w innej kategorii. Próbowałem:Tabulat góry n najczęściej powtarzanych wartości, w tym innych

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

a wyjście jest:

1968 1966 1979 
    39 37 34 

Ale chcę go mieć

1968 1966 1979 Others 
    39 37 34 950 
+1

można zapewnić powtarzalne i uogólnionego przykład to pytanie tak, że możemy (i przyszłych czytelników) odtworzenia problemu? – Nancy

+2

Dlaczego nie używałbyś tutaj "tabeli"? – TARehman

Odpowiedz

8

Oto kilka przykładowych danych.

set.seed(1) 
x <- sample(10, 500, TRUE) 

Możemy uruchomić całe podsumowanie, podzbiór pierwszych trzech, a następnie obliczyć pozostałe wartości jako "Inne" i przypiąć je na końcu. Dodatkowo, myślę, że możesz po prostu użyć table() zamiast summary(factor()) od summary.factor() robi to pod maską tak czy inaczej.

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

Uwaga: Może być lub nie być szybszy w użyciu Others = length(x) - sum(xx[1:3]).

0

I został rozwiązany za pomocą parametru o nazwie maxsum

plot_data <- sort(summary(as.factor(canciones$YEAR),maxsum=3), decreasing=T)[1:3] 
Powiązane problemy