2017-04-17 4 views
2

Ich versuche, Funktion ausführen, die einen Parameter, die Liste der Zahlen, und zählt die Duplikate.Zählen Sie die Anzahl der duplizierten Werte

Beispiel:

number <- c(1, 1, 1, 2, 2, 4, 5) 

In diesem Fall wird der Ausgang 2, da nur 1 und 2 Duplikate haben.

Ich weiß, wie für for-Schleife zu verwenden, aber nicht sicher, wie Duplikate gezählt werden.

+2

oder 'Summe (Tabelle (x)> 1)' –

Antwort

4

Tabellieren Sie die Werte und zählen Sie, wie viele davon größer als eins sind.

x <- c(1, 1, 1, 2, 2, 4, 5) 

sum(tabulate(x) > 1) 
# [1] 2 

Oder wenn Sie für gerade Läufe von Duplikaten suchen, rle kann als Alternative zu Auftabellierung verwendet werden.

with(rle(x), sum(lengths > 1)) 
# [1] 2 
0

Diese Lösung wird in Python geschrieben.

import collections 
number = [1,1,1,2,2,4,5] 
x = collections.Counter(number) 
len([i for i in x if x[i]>1]) 

Es setzt die Zahlen, die mehr als einmal in einer Liste angezeigt wird, und dann zählt, wie viele Elemente in dieser Liste enthalten sind.

+2

Die Frage ist markiert R, nicht Python. –

Verwandte Themen