Here is one option (not the best, but does the job):

foo <- function(x) table(factor(unlist(strsplit(as.character(x), "")),
levels = c('A','C','G','T')))
t(apply(d[, -c(1:4)], 1, foo))

What's wrong with Jim Holtman's solution?

HTH,
Jorge.-


On Thu, Jan 10, 2013 at 3:46 PM, Yao He <> wrote:

> Hi arun
> Then how could spilt them and get a table of letters count such as:
>   id AA AG CC CT GA GG GT TC TG TT
>               id   A T C G
> > #1 27412 81 0 0 25
> > #2 27413  0  77 29 0
>
>  Thanks
>
> 2013/1/10 arun <smartpink...@yahoo.com>:
> > Hi Yao,
> > You could also use:
> > library(reshape2)
> > dd<-dat1[,-(1:4)]
> >
> res<-dcast(melt(within(dd,{id=row.names(dd)}),id.var="id"),id~value,length)
> > head(res)
> > #     id AA AG CC CT GA GG GT TC TG TT
> > #1 27412 29 10  0  0 13  1  0  0  0  0
> > #2 27413  0  0  4  9  0  0  0 12  0 28
> > #3 27414  0  0  0  0  0  0  0  0  0 53
> > #4 27415  0  0 53  0  0  0  0  0  0  0
> > #5 27416  0  0  3  9  0  0  0 12  0 29
> > #6 27417  0  0 53  0  0  0  0  0  0  0
> >
> > #Just for comparison:
> > dat2<- dat1[rep(row.names(dat1),2000),]
> >  nrow(dat2)
> > #[1] 40000
> >  row.names(dat2)<-1:40000
> >  dd <- dat2[,-(1:4)]
> >   system.time(res1<- table(rownames(dd)[row(dd)], unlist(dd)))
> > #   user  system elapsed
> > #  5.840   0.104   5.954
> >  system.time(res2 <-
> dcast(melt(within(dd,{id=row.names(dd)}),id.var="id"),id~value,length))
> > #   user  system elapsed
> > #  3.100   0.064   3.167
> >  head(res1,3)
> >
> >  #     AA AG CC CT GA GG GT TC TG TT
> >  # 1   29 10  0  0 13  1  0  0  0  0
> >  # 10   0  4  0  0  6 43  0  0  0  0
> >  # 100 19 15  0  0 15  4  0  0  0  0
> >  head(res2,3)
> > #   id AA AG CC CT GA GG GT TC TG TT
> > #1   1 29 10  0  0 13  1  0  0  0  0
> > #2  10  0  4  0  0  6 43  0  0  0  0
> > #3 100 19 15  0  0 15  4  0  0  0  0
> >
> > A.K.
> >
> >
> >
> >
> >
> >
> >
> > ----- Original Message -----
> > From: Yao He <yao.h.1...@gmail.com>
> > To: R help <r-help@r-project.org>
> > Cc:
> > Sent: Wednesday, January 9, 2013 9:23 AM
> > Subject: [R] how to count "A","C","T","G" in each row in a big
> data.frame?
> >
> > Dear All
> >
> > I have a data.frame like that:
> > structure(list(name = c("Gga_rs10722041", "Gga_rs10722249",
> "Gga_rs10722565",
> > "Gga_rs10723082", "Gga_rs10723993", "Gga_rs10724555", "Gga_rs10726238",
> > "Gga_rs10726461", "Gga_rs10726774", "Gga_rs10726967", "Gga_rs10727581",
> > "Gga_rs10728004", "Gga_rs10728156", "Gga_rs10728177", "Gga_rs10728373",
> > "Gga_rs10728585", "Gga_rs10729598", "Gga_rs10729643", "Gga_rs10729685",
> > "Gga_rs10729827"), chr = c(7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
> > 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L), pos = c(11248993L,
> > 20038370L, 16164457L, 38050527L, 20307106L, 13707090L, 12230458L,
> > 36732967L, 2790856L, 1305785L, 29631963L, 13606593L, 13656397L,
> > 2261611L, 32096703L, 13733153L, 16524147L, 558735L, 12514023L,
> > 3619538L), strand = c("+", "+", "+", "+", "+", "+", "+", "+",
> > "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+", "+"),
> >     X2353 = c("AA", "TT", "TT", "CC", "TT", "CC", "CC", "TT",
> >     "CC", "GG", "AG", "AG", "AG", "TT", "CC", "AG", "CC", "AA",
> >     "GG", "GG"), X2409 = c("AA", "CT", "TT", "CC", "CT", "CC",
> >     "CC", "TT", "CC", "GG", "GG", "AG", "AG", "TT", "CC", "AG",
> >     "CC", "AA", "AG", "GA"), X2500 = c("GA", "TT", "TT", "CC",
> >     "TT", "CC", "CC", "TT", "CC", "GG", "GG", "GG", "GG", "GT",
> >     "CT", "GG", "CC", "AA", "AA", "AA"), X2598 = c("AA", "TT",
> >     "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "AA", "AG",
> >     "GG", "TT", "CC", "AG", "TC", "AA", "AA", "AG"), X2610 = c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "GA", "GG", "TT", "CC", "GA", "CC", "AA", "AA", "GA"), X2300 =
> c("GA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "AA", "AG", "TT", "TC", "AA", "TC", "AA", "AG", "AA"), X2507 =
> c("AG",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GA", "GG", "TT", "TC", "GG", "CC", "AA", "GA", "AG"), X2530 =
> c("AG",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "AA",
> >     "GG", "GG", "TT", "CC", "GG", "CC", "AA", "AA", "AA"), X2327 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "GG", "GG", "TT", "TC", "GG", "CC", "AA", "AA", "AA"), X2389 =
> c("AA",
> >     "CC", "TT", "CC", "CC", "CC", "CC", "TT", "CC", "AG", "GG",
> >     "AG", "GG", "TT", "TC", "AG", "CC", "AA", "AA", "AA"), X2408 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "GA", "GG", "TT", "CC", "GA", "CC", "AA", "AA", "AG"), X2463 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "TT", "CT", "GG", "CC", "AA", "AA", "GA"), X2420 =
> c("GA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "AG",
> >     "GG", "GG", "TG", "TT", "GG", "CT", "AA", "AA", "AA"), X2563 =
> c("GA",
> >     "CC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "GG", "GG", "GT", "TT", "GG", "CT", "AA", "AA", "AA"), X2462 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "AA",
> >     "GG", "GG", "GT", "TC", "GG", "CC", "AA", "AA", "AA"), X2292 =
> c("GA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "AA", "GG", "TG", "TC", "AA", "TC", "AA", "AA", "AA"), X2405 =
> c("GA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "AG", "GG", "TG", "TT", "AA", "CT", "AA", "AA", "AA"), X2543 =
> c("AA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GA", "GA",
> >     "GA", "GG", "TT", "CT", "GA", "TT", "AA", "AA", "GG"), X2557 =
> c("AG",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "AG",
> >     "GA", "GG", "GT", "CT", "GA", "CT", "AA", "AA", "AG"), X2583 =
> c("GA",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "GG", "GG", "GG", "CT", "GA", "CT", "AA", "AA", "AG"), X2322 =
> c("AG",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "GT", "TT", "GG", "CC", "AA", "AA", "GA"), X2535 =
> c("AA",
> >     "TC", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "GG", "GG", "TT", "CC", "GG", "CC", "AA", "AA", "AG"), X2536 =
> c("GA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "AG", "GG", "TT", "TC", "AG", "TC", "AA", "AA", "GA"), X2581 =
> c("AG",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GA", "GG", "TT", "CC", "GA", "CT", "AA", "AA", "AG"), X2570 =
> c("AA",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "TT", "TC", "GG", "CC", "AA", "AA", "GG"), X2476 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "GT", "TC", "AG", "CC", "AA", "AA", "AG"), X2534 =
> c("GA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "AG", "GG", "TG", "CC", "AG", "TC", "AA", "AA", "AA"), X2280 =
> c("AA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "AG",
> >     "AG", "GG", "TT", "CC", "GG", "CC", "AA", "AA", "AG"), X2316 =
> c("AA",
> >     "CC", "TT", "CC", "CC", "CC", "CC", "TT", "CC", "AG", "AA",
> >     "AA", "AG", "TT", "TC", "GG", "CT", "AA", "GG", "GG"), X2339 =
> c("AA",
> >     "CC", "TT", "CC", "CC", "CC", "CC", "TT", "CC", "GA", "AA",
> >     "GG", "GG", "GT", "CT", "GG", "TT", "AA", "AA", "AG"), X2331 =
> c("AA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "TT", "CC", "GG", "CC", "AA", "AA", "AG"), X2343 =
> c("AA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "TT", "CT", "GG", "CC", "AA", "AA", "GA"), X2352 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "AA",
> >     "GG", "GG", "TT", "CC", "GG", "CC", "AA", "GA", "AG"), X2293 =
> c("GA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GA",
> >     "AA", "GG", "TT", "TC", "AA", "CT", "AA", "AA", "AA"), X2338 =
> c("GA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "AG", "GG", "TT", "TC", "AG", "TC", "AA", "AA", "GA"), X2449 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "AG",
> >     "AA", "GG", "TT", "CC", "AA", "TC", "AA", "AA", "GA"), X2296 =
> c("GA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GA", "GG",
> >     "AG", "GG", "TG", "TC", "AG", "CC", "AA", "AA", "AA"), X2453 =
> c("AG",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "AG", "GG",
> >     "GA", "GG", "GT", "CT", "GA", "CT", "AA", "AA", "GA"), X2460 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "AG", "GG",
> >     "GG", "GG", "TG", "CT", "GG", "CC", "AA", "AA", "AA"), X2474 =
> c("AA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GA", "AG",
> >     "AG", "GG", "TT", "CC", "AG", "TC", "AA", "AA", "GA"), X2603 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "AG",
> >     "AG", "GG", "TT", "CC", "AG", "CC", "AA", "AA", "GA"), X2282 =
> c("GA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "AA", "GG", "TT", "TT", "AA", "CC", "AA", "AA", "GA"), X2313 =
> c("AG",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "AG",
> >     "GA", "GG", "GT", "CC", "GA", "CT", "AA", "AA", "AA"), X2538 =
> c("AA",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "AA",
> >     "AG", "GG", "TG", "CC", "AG", "CC", "AA", "AA", "AA"), X2522 =
> c("AG",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GA", "GG", "TT", "TC", "GG", "CC", "AA", "AG", "GA"), X2489 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "GT", "TC", "AG", "CC", "AA", "AA", "AG"), X2564 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GA", "GG",
> >     "GG", "GG", "TT", "CC", "AA", "CT", "AA", "AA", "AA"), X2594 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "AA",
> >     "AG", "GG", "TT", "TC", "AG", "TC", "AA", "AA", "AG"), X2274 =
> c("AA",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "TT", "CT", "GG", "CC", "AA", "AA", "GA"), X2451 =
> c("AG",
> >     "TT", "TT", "CC", "TT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GG", "GG", "TT", "CT", "GG", "CC", "AA", "AA", "GA"), X2321 =
> c("GG",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "AG",
> >     "AA", "GG", "TT", "TT", "AA", "CC", "AA", "AA", "AA"), X2356 =
> c("AA",
> >     "TC", "TT", "CC", "TC", "CC", "CC", "TT", "CC", "GA", "AG",
> >     "AG", "GG", "TG", "TC", "AG", "TT", "AA", "AA", "AA"), X2611 =
> c("AG",
> >     "CT", "TT", "CC", "CT", "CC", "CC", "TT", "CC", "GG", "GG",
> >     "GA", "GG", "TT", "CT", "GA", "TT", "AA", "AA", "AG")), .Names =
> c("name",
> > "chr", "pos", "strand", "X2353", "X2409", "X2500", "X2598", "X2610",
> > "X2300", "X2507", "X2530", "X2327", "X2389", "X2408", "X2463",
> > "X2420", "X2563", "X2462", "X2292", "X2405", "X2543", "X2557",
> > "X2583", "X2322", "X2535", "X2536", "X2581", "X2570", "X2476",
> > "X2534", "X2280", "X2316", "X2339", "X2331", "X2343", "X2352",
> > "X2293", "X2338", "X2449", "X2296", "X2453", "X2460", "X2474",
> > "X2603", "X2282", "X2313", "X2538", "X2522", "X2489", "X2564",
> > "X2594", "X2274", "X2451", "X2321", "X2356", "X2611"), row.names =
> > 27412:27431, class = "data.frame")
> >
> > how to count how many "A","C","T","G" in each row
> > an example output what I want is  like that
> > A  C   AA  AC  CC
> > 3   5    1      1     2
> >
> > Thanks in advance
> >
> > Yao He
> > --
> > —————————————————————————
> > Master candidate in 2rd year
> > Department of Animal genetics & breeding
> > Room 436,College of Animial Science&Technology,
> > China Agriculture University,Beijing,100193
> > E-mail: yao.h.1...@gmail.com
> > ——————————————————————————
> >
> > ______________________________________________
> > R-help@r-project.org mailing list
> > 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.
> >
>
>
>
> --
> —————————————————————————
> Master candidate in 2rd year
> Department of Animal genetics & breeding
> Room 436,College of Animial Science&Technology,
> China Agriculture University,Beijing,100193
> E-mail: yao.h.1...@gmail.com
> ——————————————————————————
>
> ______________________________________________
> R-help@r-project.org mailing list
> 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.
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
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