Actually I have the same problem with this case strsplit one column with exact information in two columns
This issue has already been resolved, only my data looks like
SNP Geno AlleleA AlleleB AlleleC AlleleD AlleleE
1 marker1 G1 AA AA AA AA AA
2 marker2 G1 TT TT TT TT TT
3 marker3 G1 TT TT TT TT TT
4 marker1 G2 CC CC CC CC CC
5 marker2 G2 AA AA AA AA AA
6 marker3 G2 TT TT TT TT TT
7 marker1 G3 GG GG GG GG GG
8 marker2 G3 AA AA AA AA AA
9 marker3 G3 TT TT TT TT TT
conclusion:
structure(list(SNP = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L,
2L, 3L), .Label = c("marker1", "marker2", "marker3"), class = "factor"),
Geno = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), .Label = c("G1",
"G2", "G3"), class = "factor"), AlleleA = structure(c(1L,
4L, 4L, 2L, 1L, 4L, 3L, 1L, 4L), .Label = c("AA", "CC", "GG",
"TT"), class = "factor"), AlleleB = structure(c(1L, 4L, 4L,
2L, 1L, 4L, 3L, 1L, 4L), class = "factor", .Label = c("AA",
"CC", "GG", "TT")), AlleleC = structure(c(1L, 4L, 4L, 2L,
1L, 4L, 3L, 1L, 4L), class = "factor", .Label = c("AA", "CC",
"GG", "TT")), AlleleD = structure(c(1L, 4L, 4L, 2L, 1L, 4L,
3L, 1L, 4L), class = "factor", .Label = c("AA", "CC", "GG",
"TT")), AlleleE = structure(c(1L, 4L, 4L, 2L, 1L, 4L, 3L,
1L, 4L), class = "factor", .Label = c("AA", "CC", "GG", "TT"
))), .Names = c("SNP", "Geno", "AlleleA", "AlleleB", "AlleleC",
"AlleleD", "AlleleE"), row.names = c(NA, -9L), class = "data.frame")
In this question, he only has one column that he wants to split into two columns. The problem is that I have 5000 columns (AlleleA, AlleleB ......... etc.) that want to split (each column up to two columns)
I tried to use such a loop, but it doesn’t work,
for(i in colnames(dat)){
dat1 <- data.frame(do.call(rbind, strsplit(as.vector(sprintf("dat$%s",i)), split = "")))
}
I will wait for your light, thanks