[R] Paste every two columns together

Chel Hee Lee chl948 at mail.usask.ca
Thu Jan 29 04:41:39 CET 2015


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 at 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.
>



More information about the R-help mailing list