How can separate one column in two column in R?

             id        rs143        rs148       rs149      rs1490 
     1    02003s         NA          11          22          11    
     2    02003s         NA          10          11          22   
     3    02003s         NA          11          11          12   
     4    02003s         NA          10          11          11 
     5    02003s         NA          10          11          11  

     in result i want this format:

                id     rs143  rs143.1 rs148 rs148.1  rs149  rs149.1  rs1490   rs1490.1
         1    02003s    NA    NA        1     1       2       2       1        1
         2    02003s    NA    NA        1     0       1       1       2        2
         3    02003s    NA    NA        1     1       1       1       1        2
         4    02003s    NA    NA        1     0       1       1       1        1
         5    02003s    NA    NA        1     0       1       1       1        1


Requires a nice mixture of diverse functions here. This could be done in a single line, but would be complex.

    
    > df
          id rs143 rs148 rs149 rs1490
    1 02003s    NA    11    22     11
    2 02003s    NA    10    11     22
    3 02003s    NA    11    11     12
    4 02003s    NA    10    11     11
    5 02003s    NA    10    11     11
    
    #Ensure that NAs are encoded as characters
    > df[is.na(df)] <- "NA"
    
    #split each value by an empty string delimiter, then re-merge all columns back together
    > df2 <- data.frame(df$id, do.call(cbind, lapply(df[,2:ncol(df)], function(x) t(as.data.frame(strsplit(as.character(x), split=""))))), row.names=c(1:nrow(df)))
    
    > df2
       df.id X1 X2 X3 X4 X5 X6 X7 X8
    1 02003s  N  A  1  1  2  2  1  1
    2 02003s  N  A  1  0  1  1  2  2
    3 02003s  N  A  1  1  1  1  1  2
    4 02003s  N  A  1  0  1  1  1  1
    5 02003s  N  A  1  0  1  1  1  1
    
    #Now fix the colnames
    > index1 <- seq(from=2, to=ncol(df2), by=2)
    > index2 <- seq(from=3, to=ncol(df2), by=2)
    > colnames(df2)[index1] <- colnames(df[2:ncol(df)])
    > colnames(df2)[index2] <- paste(colnames(df[2:ncol(df)]), ".1", sep="")
    
    > df2
        df.id rs143 rs143.1 rs148 rs148.1 rs149 rs149.1 rs1490 rs1490.1
    1 02003s     N       A     1       1     2       2      1        1
    2 02003s     N       A     1       0     1       1      2        2
    3 02003s     N       A     1       1     1       1      1        2
    4 02003s     N       A     1       0     1       1      1        1
    5 02003s     N       A     1       0     1       1      1        1
    
    #Restore he NAs
    > df2[df2=="N"] <- NA
    > df2[df2=="A"] <- NA
    
    df
          id rs143 rs148 rs149 rs1490
    1 02003s    NA    11    22     11
    2 02003s    NA    10    11     22
    3 02003s    NA    11    11     12
    4 02003s    NA    10    11     11
    5 02003s    NA    10    11     11
    
    df2
       df.id rs143 rs143.1 rs148 rs148.1 rs149 rs149.1 rs1490 rs1490.1
    1 02003s  <NA>    <NA>     1       1     2       2      1        1
    2 02003s  <NA>    <NA>     1       0     1       1      2        2
    3 02003s  <NA>    <NA>     1       1     1       1      1        2
    4 02003s  <NA>    <NA>     1       0     1       1      1        1
    5 02003s  <NA>    <NA>     1       0     1       1      1        1
      

