2012-07-06 39 views
0

我確定這已經被問過,但對於我的生活我無法弄清楚要搜索什麼!每一行的劇集數量

,我有以下數據:

x y 
1 3 
1 3 
1 3 
1 2 
1 2 
2 2 
2 4 
3 4 
3 4 

而且我想輸出一個正在運行的計數重置每次X或Y的變化值。

x y o 
1 3 1 
1 3 2 
1 3 3 
1 2 1 
1 2 2 
2 2 1 
2 4 1 
3 4 1 
3 4 2 
+1

相關 - HTTP:// stackoverflow.com/questions/8997638/numbering-by-groups – Dason 2012-07-06 22:46:19

+0

是的。但是這個增加了兩個組的分裂,並不是所有這些解決方案都是相關的 – 2012-07-06 23:03:49

回答

2

試着這麼做

df<-read.table(header=T,text="x y 
1 3 
1 3 
1 3 
1 2 
1 2 
2 2 
2 4 
3 4 
3 4") 

cbind(df,o=sequence(rle(paste(df$x,df$y))$lengths)) 

> cbind(df,o=sequence(rle(paste(df$x,df$y))$lengths)) 
    x y o 
1 1 3 1 
2 1 3 2 
3 1 3 3 
4 1 2 1 
5 1 2 2 
6 2 2 1 
7 2 4 1 
8 3 4 1 
9 3 4 2 
+0

BINGO! 我想知道如果粘貼和rle會涉及! – 2012-07-06 23:33:34

0

在看到@ ttmaccer的我看到我的ave第一次嘗試是錯誤的,這或許需要什麼:

> dat$o <- ave(dat$y, list(dat$y, dat$x), FUN=seq) 
# there was a warning but the answer is corect. 
> dat 
    x y o 
1 1 3 1 
2 1 3 2 
3 1 3 3 
4 1 2 1 
5 1 2 2 
6 2 2 1 
7 2 4 1 
8 3 4 1 
9 3 4 2