2012-09-27 59 views
2
水平

的culmative計數我有很多小載體這樣的載體:創建每

id<-c(2,2,5,2,1,9,4,4,3,9,5,5) 

,我想創建一個具有每個ID的出現次數的累計迄今相同長度的另一個向量。對於上面的例子中的數據,這將是這樣的:

> id.count 
[1] 1 2 1 3 1 1 1 2 1 2 2 3 

我無法找到,這是否容易,也許是因爲我真的不知道如何用言語充分闡明它是什麼,其實我是想一個函數(因此稍微尷尬的問題標題)。有什麼建議麼?

回答

7

這裏是另一種方式:

ave(id,id,FUN=seq_along) 

給出:

[1] 1 2 1 3 1 1 1 2 1 2 2 3 
3
> sapply(1:length(id), function(i) sum(id[1:i] == id[i])) 
[1] 1 2 1 3 1 1 1 2 1 2 2 3 

或者,如果你在idNA是你應該使用id[1:i] %in% id[i]代替。