假設我有一個向量,我不知道,先驗,它的獨特元素(在這裏:1和2)。有沒有更好的方式獲得相同的輸出表(vec)vec是矢量?
vec <-
c(1, 1, 1, 2, 2, 2, 2)
我想知道有沒有獲取在vec
即相同的結果table(vec)
獨特元件的數量的一個更好的方式(或優雅的方式)。無論它是一個data.frame還是一個命名向量都沒關係。
R> table(vec)
vec
1 2
3 4
原因:我很好奇,想知道是否有更好的方法。另外,我注意到base
實現中有一個for
循環(除了.C調用)。我不知道這是一個大問題,但是當我做類似
R> table(rep(1:1000,100000))
R需要很長時間。我相信這是因爲數量龐大的100000.但是有沒有辦法讓它更快?
編輯這也做得不錯,除了Chase's
的答案。
R> rle(sort(sampData))
謝謝你的好解決方案。其實,我也在思考這個問題。我很好奇,如果有使用lapply或(根據我的喜好)使用plyr的函數(彙總等)的解決方案。 (我知道lapply不一定會提高速度) – suncoolsu
@suncoolsu - 你見過'plyr'的count()嗎?我之前並沒有意識到這一點,但您的評論讓我失望地找到了一條尋找它的途徑。可能是另一個可行的替代方案。 – Chase
那麼'unique'內的'sort'是多餘的;刪除它給了我這個數據上'table2'的3倍加速。 – mbq