# [R] rectify a program of seasonal dummies matrix

Uwe Ligges ligges at statistik.uni-dortmund.de
Wed Aug 22 10:00:10 CEST 2007

```
Friedrich Schuster wrote:
> Hello,
>
> the main problem seems to be the "if else", should be "else if".
>
> Your code is hard to read, maybe you should consider using more () {}:
>
> T <- 100;
> br <- matrix(0,T,4);

Thanks for the contribution. Please note:
a) It is a bad idea to have a variable called T. Some people still use
it as a logical value even if they should not.
b) R does not need any ";" at the end of a line.

Uwe Ligges

> for (i in 1:T) {
>    for (j in 1:4) {
>       if (i==j) {
>          br[i,j] <- 1;
>        }
>        else if ((abs(i-j)%%4)==0) {
>           br[i,j] <- 1;
>         }
>         else {
>           br[i,j] <- 0;
>         }
>     }
>  }
>
> A simpler approach is creating a diagonal matrix and multply it :
>
> # create small diagonal matrix
> mat = diag(x=1, nrow=4, ncol=4);
> mat
> # multiply diagonal matrix and re-dimension it   to 4 cols
> br <- rep(mat, 25);
> dim(br) <- c(100, 4);
> br;
>
> Hope this helps,
> FS
>

```