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.