我確定這已經被問過,但對於我的生活我無法弄清楚要搜索什麼!每一行的劇集數量
,我有以下數據:
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
我確定這已經被問過,但對於我的生活我無法弄清楚要搜索什麼!每一行的劇集數量
,我有以下數據:
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
試着這麼做
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
BINGO! 我想知道如果粘貼和rle會涉及! – 2012-07-06 23:33:34
在看到@ 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
相關 - HTTP:// stackoverflow.com/questions/8997638/numbering-by-groups – Dason 2012-07-06 22:46:19
是的。但是這個增加了兩個組的分裂,並不是所有這些解決方案都是相關的 – 2012-07-06 23:03:49