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
4

2 に答える 2

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
于 2012-07-06T22:49:07.820 に答える
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
于 2012-07-06T22:49:32.627 に答える