2017-04-17 61 views
2

我想運行函數,將採取一個參數,這是數字列表,並計數重複。計數重複值的數量

實施例:

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

在這種情況下,輸出將是2,因爲只有1和2具有重複。

我知道如何使用for循環,但不知道如何計數重複。

count = 0 
for (x in number){ 
    ... 
} 
+2

或'sum(table(x)> 1)' –

回答

4

將這些值製成表格,然後計算其中有多少個值大於1。

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

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

或者,如果你正在尋找重複的直管段,rle可以作爲替代列表。

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

該解決方案寫在Python

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

它將數字出現在列表中多次,然後計算該列表中有多少個元素。

+2

問題標記爲R,而不是Python。 –