0

たとえば、次の方法でこのベクトルを変換できるように、変数を再コーディングしたいと考えています。

> a <- c(0,0,0,0,0,1,1,1,1,1) # original 
> b <- c(-5,-4,-3,-2,-1,0,1,2,3,4) # transformed
> cbind(a,b)
  a  b
 [1,] 0 -5
 [2,] 0 -4
 [3,] 0 -3
 [4,] 0 -2
 [5,] 0 -1
 [6,] 1  0
 [7,] 1  1
 [8,] 1  2
 [9,] 1  3
[10,] 1  4
>

これらの変数は、たまたま時間順である順序に従います。元のデータ セットには、「0」または「1」でコード化された変数があります。たとえば、この例では「a」です。これは、各年のカテゴリ指標です。ある時点で、これらの例の行番号 6 のように、「0」から「1」への遷移があります。次に、元の変数を再コード化して、「0」から「1」への変更の前後何年かを実際に示す新しい変数を作成したいと思います。したがって、「-5」は移行の 5 年前を意味し、「0」は移行の年を意味し、たとえば「4」は移行の 4 年後を意味します。それを行うための最良の方法はありますか?ありがとう!アントニオ。

4

1 に答える 1

5
> M <- matrix( c(0,0,0,0,0,1,1,1,1,1) , ncol=1)
> M <- cbind(M, seq_along(M) - min(which(M > 0)))
> M
      [,1] [,2]
 [1,]    0   -5
 [2,]    0   -4
 [3,]    0   -3
 [4,]    0   -2
 [5,]    0   -1
 [6,]    1    0
 [7,]    1    1
 [8,]    1    2
 [9,]    1    3
[10,]    1    4
于 2011-12-06T22:25:45.153 に答える