有沒有一種方法可以計算一個對象在R中累計出現的次數?R中的累計計數
例如說我有柱:
id
1
2
3
2
2
1
2
3
這將成爲:
id count
1 1
2 1
3 1
2 2
2 3
1 2
2 4
3 2
等等
感謝
有沒有一種方法可以計算一個對象在R中累計出現的次數?R中的累計計數
例如說我有柱:
id
1
2
3
2
2
1
2
3
這將成爲:
id count
1 1
2 1
3 1
2 2
2 3
1 2
2 4
3 2
等等
感謝
ave
函數按組計算函數。
> id <- c(1,2,3,2,2,1,2,3)
> data.frame(id,count=ave(id==id, id, FUN=cumsum))
id count
1 1 1
2 2 1
3 3 1
4 2 2
5 2 3
6 1 2
7 2 4
8 3 2
我用id==id
創建所有TRUE
值,傳遞給cumsum
時得到轉換爲數字的向量。您可以用rep(1,length(id))
代替id==id
。
這是一種方式來獲得的計數:
id <- c(1,2,3,2,2,1,2,3)
sapply(1:length(id),function(i)sum(id[i]==id[1:i]))
哪給你的:
[1] 1 1 1 2 3 2 4 2
我的數據幀太大,接受的答案不斷崩潰。這爲我工作:
library(plyr)
df$ones <- 1
df <- ddply(df, .(id), transform, cumulative_count = cumsum(ones))
df$ones <- NULL
@ user1165199:如果這個問題的最佳答案,請單擊複選標記。 – 2012-04-05 19:15:07
這是王牌。將它捆綁成一個data.table對象也很簡單。 – DaveRGP 2016-01-25 16:28:11