2015-12-15 14 views
6

Cinsiyet, tema vb. Tarafından düzenlenen 1000 şarkının listesini içeren bir tablo oluşturdum. Kaç yıl tekrarlandığını ve kaç kategoride olduğunu bilmek istiyorum. Ben denedim:Diğerleri de dahil olmak üzere en çok tekrarlanan değerleri tablo haline getirin

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

Ve çıktısı:

1968 1966 1979 
    39 37 34 

Ama

1968 1966 1979 Others 
    39 37 34 950 
+1

biz (ve gelecekteki okuyucular) sorununuzu yeniden oluşturabilmeleri Bu sorunun bir tekrarlanabilir ve genelleştirilebilir örnek verebilir maxsum denilen bir parametre kullanılarak çözdük? – Nancy

+2

Neden 'table' kullanmıyorsunuz? – TARehman

cevap

8
İşte

bazı örnek verilerdir olmak istiyorum.

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

Biz, bütün özetini çalıştırmak ilk üç, daha sonra "Diğerleri" olarak kalan değerleri hesaplamak ve sonunda onu çakmak alt küme olabilir. Ayrıca, summary.factor()'un summary(factor()) yerine table()'u kullanabileceğinizi düşünüyorum.

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

Not: Others = length(x) - sum(xx[1:3]) kullanmak O veya daha hızlı olabilir veya olmayabilir.

0

Ben

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