2013-11-09 23 views
1

我正在嘗試在SQL中執行「...有count(ID)> 2 ...」的內容...「查找在表中重複超過兩次的值

我想要查找這些值在重複兩次以上的數據幀的兩列子集中的列。功能table給了我稀疏矩陣,我不知道如何操縱其結果到我想要的。對於矩陣,rowSums會找到我的總數,但我希望與標識符相關的總數。

數據集mtcars更清楚地表示我的意思。

x <- head(table(mtcars$hp, mtcars$disp), 20) 
x[,1] <- as.numeric(rownames(x)) 
x 
     71.1 75.7 78.7 79 95.1 108 120.1 120.3 121 140.8 145 146.7 160 167.6 225 258 275.8 301 304 318 350 351 360 400 440 460 472 
    52 52 1 0 0 0 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    62 62 0 0 0 0 0  0  0 0  0 0  1 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    65 65 0 0 0 0 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    66 66 0 1 1 0 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    91 91 0 0 0 0 0  0  1 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    93 93 0 0 0 0 1  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    95 95 0 0 0 0 0  0  0 0  1 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    97 97 0 0 0 0 0  1  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    105 105 0 0 0 0 0  0  0 0  0 0  0 0  0 1 0  0 0 0 0 0 0 0 0 0 0 0 
    109 109 0 0 0 0 0  0  0 1  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    110 110 0 0 0 0 0  0  0 0  0 0  0 2  0 0 1  0 0 0 0 0 0 0 0 0 0 0 
    113 113 0 0 0 1 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 0 
    123 123 0 0 0 0 0  0  0 0  0 0  0 0  2 0 0  0 0 0 0 0 0 0 0 0 0 0 
    150 150 0 0 0 0 0  0  0 0  0 0  0 0  0 0 0  0 0 1 1 0 0 0 0 0 0 0 
    175 175 0 0 0 0 0  0  0 0  0 1  0 0  0 0 0  0 0 0 0 0 0 1 1 0 0 0 
    180 180 0 0 0 0 0  0  0 0  0 0  0 0  0 0 0  3 0 0 0 0 0 0 0 0 0 0 
    205 205 0 0 0 0 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 0 1 
    215 215 0 0 0 0 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 0 1 0 
    230 230 0 0 0 0 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 0 0 0 0 1 0 0 
    245 245 0 0 0 0 0  0  0 0  0 0  0 0  0 0 0  0 0 0 0 1 0 1 0 0 0 0 

我想這個數據幀的20行的結果將是:

110 3 
175 3 
180 3 

回答

2

像這樣的事情?

df <- mtcars[ , c("hp", "disp")] 
tt <- with(df, table(hp)) 
data.frame(count = tt[tt > 2]) 

#  count 
# 110  3 
# 175  3 
# 180  3 
+0

完美!謝謝。 – cumin