Hi all, I have the following reproducible example z<-c(-5:40) w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30) r<-z %in% w now r gives me the presence or absence of elements in z that are in w but I am interested in getting the number of times each element in z appears (or doesn't appear) in w. I want the dimension of my resulting vector to be the same as that of z. How do I do that? Thanks in advance Mintewab Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer [[alternative HTML version deleted]]
Thank you for the reproducible example, but your description is missing a clear definition of what you want. For example, if your desired output is result <- c(rep(0,16),2,1,0,3,1,1,0,1,0,0,0,0,0,0,1,3,2,0,0,1,rep(0,10)) then one answer might be as.vector(table(factor(w,levels=z))) --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. M.Bezabih at lse.ac.uk wrote:> Hi all, >I have the following reproducible example > >z<-c(-5:40) >w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30) > r<-z %in% w > >now r gives me the presence or absence of elements in z that are in w >but I am interested in getting the number of times each element in z >appears (or doesn't appear) in w. I want the dimension of my resulting >vector to be the same as that of z. How do I do that? > > Thanks in advance > Mintewab > > >Please access the attached hyperlink for an important electronic >communications disclaimer: http://lse.ac.uk/emailDisclaimer > [[alternative HTML version deleted]] > >______________________________________________ >R-help at 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.
Hi Mintewab, With the IRanges packages (from Bioconductor): > library(IRanges) > countMatches(z, w) [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 3 1 1 0 1 0 0 0 0 0 0 1 3 2 0 0 1 0 0 [39] 0 0 0 0 0 0 0 0 To install the IRanges package: source("http://bioconductor.org/biocLite.R") biocLite("IRanges") Cheers, H. On 01/23/2014 07:43 AM, M.Bezabih at lse.ac.uk wrote:> Hi all, > I have the following reproducible example > > z<-c(-5:40) > w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30) > r<-z %in% w > > now r gives me the presence or absence of elements in z that are in w but I am interested in getting the number of times each element in z appears (or doesn't appear) in w. I want the dimension of my resulting vector to be the same as that of z. How do I do that? > > Thanks in advance > Mintewab > > > Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >-- Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fhcrc.org Phone: (206) 667-5791 Fax: (206) 667-1319
Here's a solution: # This gives a vector of counts (if z is a data frame, first convert it to a matrix) res = sapply(as.vector(z), function(x) sum(w==x)) # This copies the dimensions of the variable 'z' to 'res': dim(res) = dim(z) Peter On Thu, Jan 23, 2014 at 7:43 AM, <M.Bezabih at lse.ac.uk> wrote:> Hi all, > I have the following reproducible example > > z<-c(-5:40) > w<-c(11, 11, 12, 14, 14, 14, 15, 16, 18, 25, 26, 26, 26, 27, 27, 30) > r<-z %in% w > > now r gives me the presence or absence of elements in z that are in w but I am interested in getting the number of times each element in z appears (or doesn't appear) in w. I want the dimension of my resulting vector to be the same as that of z. How do I do that? > > Thanks in advance > Mintewab > > > Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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.