I am using just the first row of your data (i.e. ID1).

> ID1 <- c("A", "A", "T", "G", "C", "T", "G", "C", "G", "T", "C", "G", "T", "A")
> do.call(c,lapply(tapply(ID1, gl(7,2), c), paste, collapse=""))
   1    2    3    4    5    6    7
"AA" "TG" "CT" "GC" "GT" "CG" "TA"
>

Is this what you are looking for?  I hope this helps.

Chel Hee Lee


On 01/28/2015 05:55 PM, Kate Ignatius wrote:
I have genetic data as follows (simple example, actual data is much larger):

comb =

ID1 A A T G C T G C G T C G T A

ID2 G C T G C C T G C T G T T T

And I wish to get an output like this:

ID1 AA TG CT GC GT CG TA

ID2 GC TG CC TG CT GT TT

That is, paste every two columns together.

I have this code, but I get the error:

Error in seq.default(2, nchar(x), 2) : 'to' must be of length 1

conc <- function(x) {
   s <- seq(2, nchar(x), 2)
   paste0(x[s], x[s+1])
}

combn <- as.data.frame(lapply(comb, conc), stringsAsFactors=FALSE)

Thanks in advance!

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to