R データ フレームがあります。
a <- 1:12
list <- c(rep("x",3),rep("y",4),rep("z",3),rep("x",2))
data <- data.frame(a,list)
data
a list
1 x
2 x
3 x
4 y
5 y
6 y
7 y
8 z
9 z
10 z
11 x
12 x
「リスト」の値が変更されるたびに 1 からカウントを開始する新しい列を作成します。つまり、この例では次のようになります。
b <- c(1:3,1:4,1:3,1:2)
data <- data.frame(a,list,b)
私は R の専門家には程遠いので、これを行う効率的な方法を一生考え出すことはできません。私の主な問題は、「リスト」の任意の値がいつでも戻ってくる可能性があることですが、1 つの値のブロックの長さには規則がありません。誰にもアイデアはありますか?ありがとう!